2016-07-03 5 views
0

Ich habe eine einfache Ansicht:Referenzierung Laufzeit generiert Kommissionierer

<Alloy> 
    <Window id="window1"> 
    <Picker id="picker1" top="0"> 
    <View id="view1" top="40" /> 
    </Window> 
</Alloy> 

Und in der Steuerung Ich füge pickerRows picker1. Ich kann den ausgewählten Wert dieser picker1 sichtbar machen mit

Ti.API.info($.picker1.getSelectedRow(0).title); 

Ich bin auch das Hinzufügen (eine variable Anzahl von) Pflücker zu der Ansicht:

var data = []; 
data[1]=Ti.UI.createPickerRow({title:'1'}); 
data[2]=Ti.UI.createPickerRow({title:'2'}); 
data[3]=Ti.UI.createPickerRow({title:'3'}); 
data[4]=Ti.UI.createPickerRow({title:'4'}); 

nTop = 80 
for (i = 1; i < nNoOfPickers; i++) { 
picker = Ti.UI.createPicker({top: nTop+10 }); 
i++; 
picker.add(data); 
$.view1.add(picker); 
nTop = nTop + 40; 
}; 

Mein Problem ist jetzt: Wie bekomme ich die ausgewählter Wert von einem dieser generierten Picker?

Antwort

0

Verwenden Änderung Ereignis-Listener auf jedem Picker wie diese die Werte der ausgewählten Zeile zu erhalten:

for (i = 1; i < nNoOfPickers; i++) { 
    picker = Ti.UI.createPicker({top: nTop+10 }); 
    picker.addEventListener('change', function (e) { 
     Ti.API.info(e.source.getSelectedRow()); 
    }); 
    i++; 
    picker.add(data); 
    $.view1.add(picker); 
    nTop = nTop + 40; 
    }; 

Allerdings gibt es viele Dinge in Ihrem Code, die Sie verbessern wollen würde, aber ich habe dir nur die Antwort gegeben, die du suchst. Ich hoffe es hilft!

+0

tnx. Ich werde geben, dass ich es versuche. (Ich habe ziemlich viel Code aus dem Programm weggelassen, an dem ich gerade arbeite. Ich bemerke jetzt zB das i ++, was wirklich merkwürdig aussieht!) – Foxbox

+0

Ja, deshalb habe ich Ihren Code kopiert und nur das geändert, was benötigt wird. Ich möchte darauf hinweisen, dass Sie, wenn Sie auf die Laufzeit-Picker zugreifen möchten, diese in einem Array oder Dictionary gemäß Ihren Anforderungen speichern können und Sie dann auf alle Eigenschaften und Methoden (P & M) zugreifen können. Die Antwort, die ich gab, zeigt nur, wie man auf P & M der Runtime Picker zugreift, aber Sie müssen möglicherweise auch auf einige andere Dinge zugreifen. –