Javascript 在表格视图中的行中选择特定元素
嗨,我正在用钛开发Android应用程序。我想在单击事件时更改图像。但我无法在表视图中选择特定图像。我使用了以下代码:Javascript 在表格视图中的行中选择特定元素,javascript,android,titanium,Javascript,Android,Titanium,嗨,我正在用钛开发Android应用程序。我想在单击事件时更改图像。但我无法在表视图中选择特定图像。我使用了以下代码: var user_table = Ti.UI.createTableView({minRowHeight:5.length,hasChild:true}); var data = []; for (var i=0;i<5.length;i++) { var row = Ti.UI.createTableViewRow({height:'auto',
var user_table = Ti.UI.createTableView({minRowHeight:5.length,hasChild:true});
var data = [];
for (var i=0;i<5.length;i++)
{
var row = Ti.UI.createTableViewRow({height:'auto',className:"row"});
var username = Ti.UI.createLabel(
{
text:'user name',
height:'auto',
font:{fontSize:12, fontFamily:'Helvetica Neue', color:'#000'},
width:'auto',
color:'#000',
textAlign:'left',
top:0,
left:35,
});row.add(username);
var imageView = Ti.UI.createImageView(
{
image:'../images/user.png',
left:0,
top:0,
height:25,
width:25
});row.add(imageView);
}
feed_table.setData(data);
feedWin.add(feed_table);
var user_table=Ti.UI.createTableView({minRowHeight:5.length,hasChild:true});
var数据=[];
对于(var i=0;i我会这样做:
addRow = function(_args)
{
var row = Ti.UI.createTableViewRow(
{
height:'auto',
className:"row"
});
var username = Ti.UI.createLabel(
{
text: _args.text || 'user name',
height:'auto',
font:{fontSize:12, fontFamily:'Helvetica Neue', color:'#000'},
width:'auto',
color:'#000',
textAlign:'left',
top:0,
left:35,
});
row.add(username);
var imageView = Ti.UI.createImageView(
{
image:_args.image||'../images/user.png',
left:0,
top:0,
height:25,
width:25
});
row.add(imageView);
row.setImage = function(image)
{
imageView.imageURL = image;
};
row.addEventListener('click',function(e)
{
row.setImage('new/image/path');
};
return row;
}
var user_table = Ti.UI.createTableView({minRowHeight:5.length,hasChild:true});
var data = [];
for (var i=0;i<5.length;i++)
{
var newRow = addRow({
text: 'my text',
image: 'my image url'
});
data.push(newRow);
}
feed_table.setData(data);
feedWin.add(feed_table);
试一试。我没有编译它,所以它只是一个建议
[update]请注意,android上的“自动”值可能很糟糕。1)在表视图中,在整行设置事件侦听器
tableView.addEventListener('click',function(event){
if ( event.source.id === undefined ) {
// if no id defined then you know it is not an image...
} else {
// you have an id, you have an image..
var rowNumber = event.index;
var image = event.source;
}
});
2) 创建图像时,为每个图像设置一个id,以便在单击事件中识别图像
var imageView = Ti.UI.createImageView({
id :"image_"+ i, // set object id
image:'../images/user.png',
left:0,
top:0,
height:25,
width:25
});
你好,Aaron,谢谢你的回复。我尝试了上面的代码,但它给我的错误是“事件”没有定义。对不起,代码不是完美的,但是你应该能够在大约30行代码中对一个未定义的变量进行简单的调试和分析?我投票反对的原因有两个:这里有大量的复杂性可以避免。没有必要向每一行添加事件侦听器,这会增加额外的权重。正如Aaron的示例所示,您可以将侦听器添加到整个表中,并查看单击了哪些元素(event.source),以控制单击元素时发生的情况。我还建议您不要在每行存储函数。如果有几千行,这就意味着有几千个独特的函数,而实际上只需要一个。有道理?
var imageView = Ti.UI.createImageView({
id :"image_"+ i, // set object id
image:'../images/user.png',
left:0,
top:0,
height:25,
width:25
});