无法从Titanium Appcelerator中的OptionDialog框中选择选项?

时间:2013-11-21 15:48:50

标签: titanium appcelerator titanium-mobile

我在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);
});

2 个答案:

答案 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选项。