引用运行时生成的选择器
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;
};
然而,您的代码中有很多您想要改进的地方,但我只为您提供了您正在寻找的答案。希望对您有所帮助!
我有一个简单的看法:
<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;
};
然而,您的代码中有很多您想要改进的地方,但我只为您提供了您正在寻找的答案。希望对您有所帮助!