2012-01-14 32 views
0

我需要做的事情很简单,但是我无法将它置于脑后。 我想获取该行多数民众赞成的ID被点击,所以我可以导航到基于该ID的下一个窗口,编号的和listItems中距离通过JSON外部源获取并存储在NumberOfLists阵列从Onload方法中获取TableViewRow的索引Titanium

Titanium.UI.setBackgroundColor('#000'); 

// create base UI tab and root window 
// 
var win1 = Titanium.UI.createWindow({ 
    title : 'Main Window', 
    backgroundColor : '#fff' 
}); 

var listUrl = "http://magadhena.com/test/list.php?FCODE=5&USERID=1"; 
var NumberOfLists = []; 
var listsJson; 
var tableData = []; 
var table = Ti.UI.createTableView({ 
    top : 40, 
    left : 10, 
    width : 300 
}); 


var xhr = Ti.Network.createHTTPClient(); 
xhr.setTimeout(3000); 
xhr.onload = function() { 
    listsJson = eval('(' + this.responseText + ')'); 
    for(var i = 0; i < listsJson.length; i++) { 
      var userId = listsJson[i].userid; 
      var listId = listsJson[i].listid; 
      var listName = listsJson[i].listname; 

      var Object1 = new list(userId, listId, listName); 

      NumberOfLists.push(Object1); 


      var row = Ti.UI.createTableViewRow({ 
      title : Object1.listName, 
      hasDetail:true 
    }); 

    tableData.push(row) 

    } 
    table.setData(tableData); 


}; 
xhr.open("GET", listUrl); 
xhr.send(); 

win1.add(table); 



// Opening Window1 

win1.open(); 

///// List Objects 

    function list(userid, listid, listname) { 
    this.userId = userid; 
    this.listId = listid; 
    this.listName = listname; 

} 

回答

0

修改你的onload。通常你可以这样

var Object1 = new list(userId, listId, listName); 

NumberOfLists.push(Object1); 


var row = Ti.UI.createTableViewRow({ 
    title : Object1.listName, 
    hasDetail:true, 
    remoteObject: Object1 /* your custom property */ 
}); 

声明自定义属性的行对象此属性格式应该是很容易的实现代码如下click事件为:

table.addEventListener('click',function(e){ 
    var _clickedRow = e.row; 
    Ti.API.debug("userID:" +_clickedRow.remoteObject.userId); 
}); 
相关问题