我正在将项目推送到数据数组,然后将这些项目添加到rowData数组中以便为表创建自定义行。我需要知道如何在用户点击特定行时访问这些内容。我以前使用e.rowData,title等来访问这些元素时,我有一个基本的表,但现在它是一个自定义表,这是行不通的。不要担心解析位,一切正常。所有帮助赞赏!访问TableView的自定义行
data.push({
title: items.item(i).getElementsByTagName("title").item(0).text,
leftImage: str.match(patt1) !== null ? str.match(patt1)[0] : 'image_news.png',
dataToPass: items.item(i).getElementsByTagName("description").item(0).text,
hasChild: true,
js:"external.js"
});
}
var rowData=[];
for(i=0;i<data.length;i++){
var img= Titanium.UI.createImageView({
image:data[i].leftImage,
left:0,
bottom:5,
height: 100,
width: 100
});
var bgBar=Titanium.UI.createView({
height:110,
width: "100%",
bottom:0,
left:0,
backgroundColour: "#000",
opacity: 0.6
});
var title=Titanium.UI.createLabel({
text:data[i].title,
color: 'black',
left: 105
});
var row=Titanium.UI.createTableViewRow({
height: "auto",
hasChild: "true",
js:"external.js",
dataToPass: data[i].dataToPass
});
row.add(img);
row.add(bgBar);
row.add(title);
rowData.push(row);
console.log("row shiznick" + rowData);
}
tableView.setData(rowData);
tableView.addEventListener("click", function (e){
console.log("HERE SOURCE.TITLE ------------------"+e.row.title);
console.log("YOYOOYOYO------------"+e.source.title);
console.log("IS THIS IT---------------"+e.children[0]);
console.log("HERE IS THE SOURCE -----------------------------"+ e.source);
console.log("HERE SOURCE.LEFTIMAGE REG EXP3 ------------------"+e.row.leftImage);
console.log("HERE SOURCE.ClassName ------------------"+e.source.className);
console.log("HERE HASCHILD ------------------"+e.rowData.hasChild);
console.log("HERE DATATOPASS ------------------"+e.row.dataToPass);
});
做一个jsfiddle非常感谢您的回复。我唯一的问题是我不确定如何访问dataToPass。我试过\t var dataToPassInRow = rowChildren [3];和dataToPassInRow.text,但这是导致错误?我认为这是因为我没有像其他人一样添加此属性。有什么我失踪? – user2363025
也为了访问图像,我尝试了console.log(imgInRow.text),它返回undefined。 console.log(imgInRow.image)但这是返回[对象imageView],我试着console.log(imgInRow.image.text),这是返回undefined – user2363025
hmm e.rowData似乎适用于dataToPass。这很混乱。我仍然无法获取图像,虽然 – user2363025