我有一个包含文本视图和3个可单击图像视图的自定义行。 onClick在ImageView中的任何一个上,这个Image变为另一个。
我的问题是,当我点击第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的OnClick函数 public 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();
}
答案 0 :(得分:0)
如果你不使用id,你在所有行中改变了重复,因为你使用了position,那么你必须为getView()
中创建的每一行设置id,现在如果你有一些选择,你可以处理大小为list的整数数组,默认情况下等于0然后如果按一行更改行的值,则在show image中检查该行的值,如果为零,则默认为let,否则检查你想要展示的价值和选择的图像,我希望你理解我的话