0

我是一个绝对的初学者,我正在尝试开发我的第一个应用程序。我经历了 Lynda.com.Titanium.Mobile.App.Development.Essential.Training。

之后,我画出我想要实现的目标,基本上是一个多选择器,其中主要字段是:

大陆、国家、州、机场、纬度、液化天然气

动态链接

所以我开始四处搜索,发现以下代码和平:

var win = Ti.UI.createWindow();
{//选择器

var picker = Ti.UI.createPicker({
    selectionIndicator: true
});

var data = [
    {country: 'US', cities: ['Miami', 'Orlando', 'LA', 'Ny']}, 
    {country: 'Canada', cities: ['Toronto', 'Ottawa', 'Quebec']}, 
    {country: 'UK', cities: ['London', 'York', 'Oxford', 'Bath']}
];
var rows = [];
for (var i = 0; i < data.length; i++){
    var row = Ti.UI.createPickerRow({
        title: data[i].country,
        cityArray: data[i].cities
    });

    rows.push(row);

}
picker.add(rows);

picker.addEventListener('change', function(e){
    Ti.API.info(e.row.title);
    Ti.API.info(e.row.cityArray);
})   

win.add(选择器);
}
win.open();

但我认为它没有按应有的方式工作,它不显示第二个选择器、任何帮助、任何建议、指针?

干杯

4

1 回答 1

-2

您的代码有一些语法错误。

var win = Ti.UI.createWindow();

var picker = Ti.UI.createPicker({
    selectionIndicator: true
});
var column1 = Ti.UI.createPickerColumn();
var column2 = Ti.UI.createPickerColumn();

var data = [
    {country: 'US', cities: ['Miami', 'Orlando', 'LA', 'Ny']}, 
    {country: 'Canada', cities: ['Toronto', 'Ottawa', 'Quebec']}, 
    {country: 'UK', cities: ['London', 'York', 'Oxford', 'Bath']}
];

for (var i = 0; i < data.length; i++){
    var row1 = Ti.UI.createPickerRow({
        title: data[i].country,

    });
    column1.addRow(row1);
}

for (x in data[0])
{
    var row2 = Ti.UI.createPickerRow({
        title: data[0][x].val,

    });
    column2.addRow(row2)
 }

picker.add([column1,column2]);

picker.addEventListener('change', function(e){
    Ti.API.info(e.row.title);
    Ti.API.info(e.row.cityArray);
});

win.add(picker);

win.open();

我稍微修改了代码。

这应该返回完整的左侧选择器,以及第二个选择器中第一个城市的选项。

当第一个更改时,您的事件侦听器必须更改第二个选择器。

注意添加了“列”。

我还清理了一些语法错误。

我还没有测试过这段代码,但它应该会引导你朝着正确的方向前进。

此外,这应该有帮助:http ://docs.appcelerator.com/titanium/2.0/#!/api/Titanium.UI.Picker

于 2012-05-07T17:35:43.333 回答