引用运行时生成的选择器

Referencing runtime generated pickers

我有一个简单的看法:

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

我现在的问题是:如何从其中一个生成的选择器中获取选定的值?

在每个选择器上使用 change 事件侦听器来获取所选行的值,如下所示:

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

然而,您的代码中有很多您想要改进的地方,但我只为您提供了您正在寻找的答案。希望对您有所帮助!