2016-07-03 32 views
0

我有一個簡單視圖:引用運行時生成的拾取器

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

而在控制器我加入pickerRows到picker1。我可以使picker1可見的選定值與

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

我也在(可變數目)撿拾者的觀點:

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; 
}; 

我現在的問題是:我怎麼得到從那些生成的採摘者中選擇一個值?

回答

0

使用變化上的每個選擇器事件偵聽器來獲得所選行的值是這樣的:

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; 
    }; 

但也有很多事情在你的代碼,你想改善,但我只提供了你正在尋找的答案。希望能幫助到你!

+0

tnx。我會給我,我嘗試。 (我忽略了我正在編寫的程序中的一些代碼,現在我注意到了,例如i ++,它確實看起來相當奇怪!) – Foxbox

+0

是的,這就是爲什麼我複製了代碼並改變了所需的代碼。我想指出的是,如果您想訪問運行時間選擇器,則可以根據您的要求將它們保存在數組或字典中,然後可以訪問它們的所有屬性和方法(P&M)。我給出的答案只顯示瞭如何訪問運行時選擇器的P&M,但是您可能還需要訪問其他一些東西。 –