我在Titanium中创建了一个OptionDialog。我已从动态数组中添加了这些选项列表。如何在单击对话框中的任何项目时获取特定选项值?
var View = Ti.UI.createTextField({
height : '60dp',
width : '90%',
value : 'click here'
)};
myArray = ['Lion','Tiger','Cat','Elephant','Dog'];
var opts = {
cancel: 2,
options: myArray,
selectedIndex: 2,
destructive: 0,
};
var dialog;
View.addEventListener('click',function(){
dialog = Ti.UI.createOptionDialog(opts).show();
});
我尝试过如下,但不起作用。
dialog.addEventListener('click',function(e){
alert('You Clicked' + e.source.options);
});
答案 0 :(得分:5)
按如下方式更改您的代码
var myArray = ['Lion','Tiger','Cat','Elephant','Dog'];
var opts = {
cancel: 2,
options: myArray,
selectedIndex: 2,
destructive: 0,
};
var dialog;
View.addEventListener('click',function(){
dialog = Ti.UI.createOptionDialog(opts);
dialog.show();
dialog.addEventListener('click', onSelectDialog);
});
function onSelectDialog(event){
var selectedIndex = event.source.selectedIndex;
//OR
//var selectedIndex = dialog.selectedIndex();
alert('You have selected' + myArray[selectedIndex ]);
}
希望它能帮到你
答案 1 :(得分:1)
对话框事件侦听器passes the index into提供的选项数组(在您的案例中为myArray
),而不是选项本身。
尝试此操作,假设您已定义数组:
var myArray = ['Lion','Tiger','Cat','Elephant','Dog'];
....
dialog.addEventListener('click',function(e){
alert('You Clicked' + myArray[e.index]);
});
这会提醒所选的myArray
选项。