引用运行时生成的选择器

时间:2016-07-03 11:57:55

标签: appcelerator

我有一个简单的观点:

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

在控制器中我将pickerRows添加到picker1。我可以使用

显示该选择器1的选定值
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; 
};

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

1 个答案:

答案 0 :(得分: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; 
    };

但是,您的代码中有许多内容需要改进,但我只为您提供了您正在寻找的答案。希望它有所帮助!