테이블에 대한 사용자 정의 행을 작성하기 위해 항목을 데이터 배열로 푸시 한 다음이를 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);
});
대단히 감사합니다. 내 유일한 문제는 dataToPass에 액세스하는 방법을 확신 할 수 없다는 것입니다. 나는 시도했다 \t var dataToPassInRow = rowChildren [3]; 및 dataToPassInRow.text하지만이 오류가 발생하고 있습니까? 저는 다른 사람들과 마찬가지로이 속성을 추가하지 않았기 때문이라고 생각합니다. 내가 빠진 것이 있습니까? – user2363025
또한 이미지에 액세스하기 위해 undefined를 반환하는 console.log (imgInRow.text)를 시도했습니다. console.log (imgInRow.image)하지만 [object imageView]를 반환하고 console.log (imgInRow.image.text)를 시도했지만 정의되지 않은 값이 반환됩니다 – user2363025
hmm e.rowData가 dataToPass에서 작동하는 것 같습니다. 이것은 혼란 스럽다. – user2363025