嗨,我正在开发一个使用钛的Android应用程序。点击更改图像我使用下面的代码。但问题是,当我点击图像时,它只会改变一次(第一次点击),当我再次点击它不会显示更改的图像。但在警报中显示图像源已更改。 (这些变化并不反映在屏幕上!! ??)另一个问题是当我点击(图像被改变)时,然后进入子窗口并返回。它没有保留这些变化。在表格视图中更改和保留已更改的元素钛
var feed_table = Ti.UI.createTableView({minRowHeight:5,hasChild:true});
var data = [];
for (var i=0;i<5;i++)
{
var row = Ti.UI.createTableViewRow({height:'auto',className:"row"});
var username = Ti.UI.createLabel(
{
text:'nilkash',
height:'auto',
font:{fontSize:12, fontFamily:'Helvetica Neue'},
width:'auto',
color:'#000',
textAlign:'left',
top:0,
left:35,
});row.add(username);
var doneCheckbox = Titanium.UI.createImageView(
{
id:'image_'+i,
clickName:'ClickName',
image:'../images/finished-work.png',
width:15,
height:15,
top:32,
left:0,
});row.add(doneCheckbox)
data.push(row);
}
feed_table.setData(data);
feedWin.add(feed_table);
feed_table.addEventListener('click',function(e)
{
if (e.source.clickName == 'ClickName')
{
if(feed_table.data[0].rows[e.index].children[1].image == '../images/work.png')
{
feed_table.data[0].rows[e.index].children[1].image = '../images/finished-work.png';
}
else if (e.source.clickName == 'ClickName')
{
feed_table.data[0].rows[e.index].children[1].image = '../images/work.png';
}
}
});
我还使用了另一种简单的解决方案,只是切换两个图像,但它也不保留这些更改。是否需要再次将更改推送到表视图?提前感谢您的帮助。
感谢您的快速答复。但如何删除和放置在表视图中的另一个图像。是否因为我们第一次做** feed_table.setData(data);和feedWin.add(feed_table); **然后执行代码替换image.Is有任何解决方案。 – nilkash
我更新了我的帖子。希望这可以帮助 – mkind