1

我正在尝试通过单击钛表视图中的一行来打开一个新窗口。

这是我的代码,

function listpage(){

   var tabgroup=Ti.UI.createTabGroup();

   var win = Ti.UI.createWindow({
      title:'Listpage',
      backgroundColor:'#fff'    
   });

   var dataArray = [{
            title:'Sunday',
            hasChild:true,
            test:'detail'}];

   for(var i=0;i<dataArray.length;i++){
        dataArray[i].color = '#000';
        dataArray[i].font  = {fontWeight:'bold',fontSize:20};
   }     

   var tableview=Ti.UI.createTableView({
       data:dataArray   
   });

    tableview.addEventListener('click',function(e){
       if(e.rowData){
           Ti.API.info(e.rowData.title);    

           var winEvent = Titanium.UI.createWindow({
               backgroundColor:'#fff',  
               url:e.rowData.test
           });
          winEvent.open({animation:true});

       }    
   });

   win.add(tableview);

   win.open();

}

detail.js 代码:

var self = Ti.UI.createWindow({
    title:'Detail',
    color:'#000',
    backgroundColor:'white'
});

var label = Ti.UI.createLabel({
    text:'Hai',
    color:'#000'
});
self.add(label);

如何通过单击 tableview 行打开 detail.js 窗口。

谢谢你。

4

1 回答 1

1

Surendra,这与您的问题相似。当您单击每一行时,它会打开一个窗口。

代码是

var wndHome = Ti.UI.createWindow({
     backgroundColor : 'white'
});

var tableView = Ti.UI.createTableView({
     top : 0
});

var tabledata = [];
for(var i = 0 ; i < 10; i++){
    var row = Ti.UI.createTableViewRow({
        title : 'Title of window',
        url   : 'details.js'
    });
    tabledata.push(row);
}
tableView.data = tabledata;
wndHome.add(tableView);
wndHome.open();


tableView.addEventListener('click', function(e){
    var wndNewWindow = Ti.UI.createWindow({
        backgroundColor : '#999966',
        url             : e.rowData.url
    });

    wndNewWindow.open();
});

详细信息.js 文件

var self = Ti.UI.currentWindow;

var label = Ti.UI.createLabel({
    text:'Hai',
    color:'#000'
});
self.add(label);

这里我给出了 details.js 的 url。如果要使用不同的窗口,请将文件名保存在数组中,并在创建 tableViewRow 时,只需将数组元素添加为 url(例如:)fileArray = ['file1.js', 'file2.js','file3.js'];

试试这个并根据您的要求更改您的代码。

于 2012-12-10T04:16:28.120 回答