在tableview行上打开一个新窗口,单击钛

时间:2012-12-07 05:15:07

标签: titanium tableview

我试图通过点击钛合金中的tableview中的一行来打开一个新窗口。

这是我的代码,

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窗口。

三江源。

1 个答案:

答案 0 :(得分: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();
});

details.js文件

var self = Ti.UI.currentWindow;

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

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

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