单击钛中的 tableviewrow 项目时更新标签文本
update the label text when clicking tableviewrow item in titanium
我创建了一个表格视图row.here表格视图的每一行都有一个标签和两个图像view.if我正在点击图像,标签值的选定行需要改变一些东西。
但是在我的代码中,如果单击图像,最后一项的标签值会更改。我的代码有什么问题。
for( var i=0; i<data.length; i++){
var row = Ti.UI.createTableViewRow({
layout : 'horizontal',
width: "100%",
height: Ti.UI.SIZE,
});
row.add(Ti.UI.createImageView({
image: data[i].image,
top: 5,
width: '50',
height: Ti.UI.SIZE,
}));
row.add(Ti.UI.createLabel({
text: data[i].name,
top: 5,
width: 180,
color: '#040404',
height: Ti.UI.SIZE,
}));
var deleteitem = Ti.UI.createImageView({
image: "images/back.png",
top: 5,
i:i,
squantity : data[i].itemCount,
spprice :data[i].itemPrice,
width: Ti.UI.SIZE,
height: Ti.UI.SIZE,
myrow: row,
});
row.add(deleteitem);
var adddeleteitemview = Ti.UI.createView({
width: Ti.UI.SIZE,
height: Ti.UI.SIZE,
layout : 'horizontal',
left:10,
borderColor:"gray",
borderRadius:"10"
});
var removeitem = Ti.UI.createImageView({
image: "images/minus.jpg",
top: 5,
width: Ti.UI.SIZE,
squantity : data[i].itemCount,
spprice :data[i].itemPrice,
height: Ti.UI.SIZE,
});
adddeleteitemview.add(removeitem);
var itemcounttext = Ti.UI.createLabel({
top: 5,
text:data[i].itemCount,
width: Ti.UI.SIZE,
height: Ti.UI.SIZE,
});
adddeleteitemview.add(itemcounttext);
removeitem.addEventListener('click', function(e) {
squantity = e.source.squantity;
spprice = e.source.spprice;
totalqty = Number(totalqty) - Number(1);
$.ViewCartItemslist_header_cart.text = totalqty;
totalamount = Number(totalamount) - Number((spprice));
squantity = Number(squantity) - 1;
itemcounttext.text=squantity;
$.ViewCartItemslist_total_value.text = totalamount;
});
var additem = Ti.UI.createImageView({
image: "images/plus.jpg",
top: 5,
width: Ti.UI.SIZE,
squantity : data[i].itemCount,
spprice :data[i].itemPrice,
height: Ti.UI.SIZE,
});
adddeleteitemview.add(additem);
additem.addEventListener('click', function(e) {
squantity = e.source.squantity;
spprice = e.source.spprice;
totalqty = Number(totalqty) + Number(1);
$.ViewCartItemslist_header_cart.text = totalqty;
totalamount = Number(totalamount) + Number((spprice));
squantity = Number(squantity) + 1;
itemcounttext.text=squantity;
$.ViewCartItemslist_total_value.text = totalamount;
});
row.add(adddeleteitemview);
dataArray.push(row);
row.addEventListener('click', function() {});
deleteitem.addEventListener('click', function(e) {
squantity = e.source.squantity;
spprice = e.source.spprice;
$.ViewCartItemstableView.deleteRow(e.source.myrow);
totalqty = Number(totalqty) - Number(squantity);
$.ViewCartItemslist_header_cart.text = totalqty;
totalamount = Number(totalamount) - Number((spprice * squantity));
$.ViewCartItemslist_total_value.text = totalamount;
});
};
$.ViewCartItemstableView.setData(dataArray);
}
编辑:
从托尼的回答中我得到了一点改进。,
removeitem.addEventListener("click",function(e){
var item=e.source;
item.getParent();
Ti.API.info("parent"+item.getParent());
});
我得到的结果如下:
parent[object TiUIView]
如何修改
的文本
var itemcounttext = Ti.UI.createLabel({
top: 5,
text:data[i].itemCount,
width: Ti.UI.SIZE,
height: Ti.UI.SIZE,
});
如何获取这个label id值,需要修改imageview onclick事件监听器中的结果((即)removeitem.addEventListener("click",function(e){)
如果有人知道给我一个实施的想法
编辑:
来自托尼评论.,
它在 IOS.But 中运行良好,但不适用于 android 实现。
警报(item.children[1].getText());
我在这里收到正确更新的警报 value.But 它没有显示在标签中。在 android.
中,你能给我一个解决这个问题的想法吗?
可以在table视图上添加点击事件,然后通过这种方式访问table视图行的child
s_f_table.addEventListener("click", function(e) {
var l = e.row.children[0];
if (l.getColor() == '#919191') {
l.applyProperties({
backgroundColor : o_color,
color : "white"
});
} else {
l.applyProperties({
backgroundColor : "white",
color : "#919191"
});
}
});
在我的代码中,table 视图行中的第一个 child 是一个标签,因此如果您知道,您可以访问 children of you table 视图行他们的顺序
另一种方法,如果你想在图像视图上添加事件,你可以添加这样的东西
anImageView.addEventListener("click",function(e){
var item=e.source;
item.getParent();//so now you are in the table row
// so you can access any child and modify it
});
编辑:
作为上次更新,您现在位于 parent 视图中
parent[object TiUIView]
其中有两个 child 其中第二个是您要修改的标签,所以现在在您获得视图后可以调用 view.children[1].settText("any thing you want")
我创建了一个表格视图row.here表格视图的每一行都有一个标签和两个图像view.if我正在点击图像,标签值的选定行需要改变一些东西。
但是在我的代码中,如果单击图像,最后一项的标签值会更改。我的代码有什么问题。
for( var i=0; i<data.length; i++){
var row = Ti.UI.createTableViewRow({
layout : 'horizontal',
width: "100%",
height: Ti.UI.SIZE,
});
row.add(Ti.UI.createImageView({
image: data[i].image,
top: 5,
width: '50',
height: Ti.UI.SIZE,
}));
row.add(Ti.UI.createLabel({
text: data[i].name,
top: 5,
width: 180,
color: '#040404',
height: Ti.UI.SIZE,
}));
var deleteitem = Ti.UI.createImageView({
image: "images/back.png",
top: 5,
i:i,
squantity : data[i].itemCount,
spprice :data[i].itemPrice,
width: Ti.UI.SIZE,
height: Ti.UI.SIZE,
myrow: row,
});
row.add(deleteitem);
var adddeleteitemview = Ti.UI.createView({
width: Ti.UI.SIZE,
height: Ti.UI.SIZE,
layout : 'horizontal',
left:10,
borderColor:"gray",
borderRadius:"10"
});
var removeitem = Ti.UI.createImageView({
image: "images/minus.jpg",
top: 5,
width: Ti.UI.SIZE,
squantity : data[i].itemCount,
spprice :data[i].itemPrice,
height: Ti.UI.SIZE,
});
adddeleteitemview.add(removeitem);
var itemcounttext = Ti.UI.createLabel({
top: 5,
text:data[i].itemCount,
width: Ti.UI.SIZE,
height: Ti.UI.SIZE,
});
adddeleteitemview.add(itemcounttext);
removeitem.addEventListener('click', function(e) {
squantity = e.source.squantity;
spprice = e.source.spprice;
totalqty = Number(totalqty) - Number(1);
$.ViewCartItemslist_header_cart.text = totalqty;
totalamount = Number(totalamount) - Number((spprice));
squantity = Number(squantity) - 1;
itemcounttext.text=squantity;
$.ViewCartItemslist_total_value.text = totalamount;
});
var additem = Ti.UI.createImageView({
image: "images/plus.jpg",
top: 5,
width: Ti.UI.SIZE,
squantity : data[i].itemCount,
spprice :data[i].itemPrice,
height: Ti.UI.SIZE,
});
adddeleteitemview.add(additem);
additem.addEventListener('click', function(e) {
squantity = e.source.squantity;
spprice = e.source.spprice;
totalqty = Number(totalqty) + Number(1);
$.ViewCartItemslist_header_cart.text = totalqty;
totalamount = Number(totalamount) + Number((spprice));
squantity = Number(squantity) + 1;
itemcounttext.text=squantity;
$.ViewCartItemslist_total_value.text = totalamount;
});
row.add(adddeleteitemview);
dataArray.push(row);
row.addEventListener('click', function() {});
deleteitem.addEventListener('click', function(e) {
squantity = e.source.squantity;
spprice = e.source.spprice;
$.ViewCartItemstableView.deleteRow(e.source.myrow);
totalqty = Number(totalqty) - Number(squantity);
$.ViewCartItemslist_header_cart.text = totalqty;
totalamount = Number(totalamount) - Number((spprice * squantity));
$.ViewCartItemslist_total_value.text = totalamount;
});
};
$.ViewCartItemstableView.setData(dataArray);
}
编辑:
从托尼的回答中我得到了一点改进。,
removeitem.addEventListener("click",function(e){
var item=e.source;
item.getParent();
Ti.API.info("parent"+item.getParent());
});
我得到的结果如下:
parent[object TiUIView]
如何修改
的文本 var itemcounttext = Ti.UI.createLabel({
top: 5,
text:data[i].itemCount,
width: Ti.UI.SIZE,
height: Ti.UI.SIZE,
});
如何获取这个label id值,需要修改imageview onclick事件监听器中的结果((即)removeitem.addEventListener("click",function(e){)
如果有人知道给我一个实施的想法
编辑:
来自托尼评论.,
它在 IOS.But 中运行良好,但不适用于 android 实现。
警报(item.children[1].getText());
我在这里收到正确更新的警报 value.But 它没有显示在标签中。在 android.
中,你能给我一个解决这个问题的想法吗?可以在table视图上添加点击事件,然后通过这种方式访问table视图行的child
s_f_table.addEventListener("click", function(e) {
var l = e.row.children[0];
if (l.getColor() == '#919191') {
l.applyProperties({
backgroundColor : o_color,
color : "white"
});
} else {
l.applyProperties({
backgroundColor : "white",
color : "#919191"
});
}
});
在我的代码中,table 视图行中的第一个 child 是一个标签,因此如果您知道,您可以访问 children of you table 视图行他们的顺序
另一种方法,如果你想在图像视图上添加事件,你可以添加这样的东西
anImageView.addEventListener("click",function(e){
var item=e.source;
item.getParent();//so now you are in the table row
// so you can access any child and modify it
});
编辑:
作为上次更新,您现在位于 parent 视图中
parent[object TiUIView]
其中有两个 child 其中第二个是您要修改的标签,所以现在在您获得视图后可以调用 view.children[1].settText("any thing you want")