我需要做的很简单,但我无法理解它。 我想得到被点击的行的ID,这样我就可以根据该ID导航到下一个窗口,Id和listitems通过JSON从外部源获取并存储在NumberOfLists数组中
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 :(得分: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 */
});
这个属性应该易于在tableview点击事件中阅读:
table.addEventListener('click',function(e){
var _clickedRow = e.row;
Ti.API.debug("userID:" +_clickedRow.remoteObject.userId);
});