2013-11-23 20 views
0

我有一个包含文本视图和3个可点击的图像视图的自定义行。 onClick在任何一个ImageView上这个图片变成另一个。当我更改第一个项目组件时,最后一项生效

我的问题是,当我点击第1行上的Image1时,图像在第1行和第9行中也发生了变化,当我点击第2行时,图像在第2行和第10行也发生了变化..等等。我不知道为什么。

但我认为它是关于滚动。

这是我的适配器getView()

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View vi = convertView; 
    if (vi == null) { 
      vi = inflater.inflate(R.layout.comprow, null); 
    } 
    TextView text = (TextView) vi.findViewById(R.id.name); 
    text.setText(data.get(position)); 

    return vi; 
} 

这是第一个ImageView的 公共无效一个(视图v){

RelativeLayout row = (RelativeLayout)v.getParent(); 
    ImageView im1 = (ImageView) row.findViewById(R.id.one); 
    ImageView im2 = (ImageView) row.findViewById(R.id.two); 
    ImageView im3 = (ImageView)row.findViewById(R.id.three); 

    im1.setImageResource(R.drawable.c0);  
    im2.setImageResource(R.drawable.b1); 
    im3.setImageResource(R.drawable.b2); 

    simpleAdpt.notifyDataSetChanged(); 
} 

回答

0

当你不使用的功能的OnClick id,在所有行中更改了重复,因为您使用的是位置,那么您必须将id设置为在getView()中创建的每一行,现在如果您有几个选择,则可以使用列表大小的整数数组处理,即默认等于0然后如果哟ü按下一行更改的行的值,然后在显示图像中检查该行的值,如果为零则默认,否则检查该值并选择要显示的图像,我希望你能理解我的单词

+0

不幸的是我不能得到你的解决方案 –

+0

看到我的更新,我希望现在得到它 –

+0

是的,我得到它。但我不认为它适合我。 正如在我的应用程序中,我禁用了行选择(当用户选择特定行时,我什么都不做) 当他/她点击行中imageview的任何图像时,我会做一些修改。 是的,我的图像数量有限,每行只有3张图片。点击任何一张图片,我将其替换为另一张图片。 –

相关问题