我有一个自定义行,其中包含一个文本视图和3个可单击的图像视图。on单击任何一个ImageView,此图像将更改为另一个。
我的问题是,当我单击row1上的Image1时,图像在row1和row9中也都发生了变化,而当我单击row2时,图像在row2和row10中也发生了变化。等等。我不知道为什么
但是我认为它与滚动有关。
这是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公共void one(View 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();
}
当您不使用id时,由于使用了位置,因此更改了所有行的重复,然后必须将id设置为在中创建的每一行getView()
,现在如果您有几种选择,则可以使用size的整数数组进行处理在列表中,默认情况下等于0,然后如果按一行,则更改行的值,然后在show image中检查该行的值,如果为零,则在默认情况下,否则检查该值并选择所需的图像显示,希望你能理解我的话
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句