我知道多次调用 Adapter 的 getView 方法的原因,但是有没有办法知道哪个返回的视图将实际显示在活动上?
到目前为止,我将链接到相同位置的所有返回视图放在一个列表中,并且每次我需要修改显示的视图时,我都会修改与该位置对应的所有视图(其中一个将是正确的......)。当然不是最好的方法...
这是我的适配器的一段代码:
class MyAdapter extends BaseAdapter {
Vector<ImageView> vectorView[] = new Vector<ImageView>[25];
public MyAdapter(Activity context) {
...
}
public doSomeStuffOnAView(int position) {
// needs to know which view corresponds to the given position
// in order to avoid the following for cycle
for (ImageView iv: vector[position]) {
// do something
}
}
public View getView(int position, ...) {
ImageView childView = ...;
if (vector[position]==null) {
vector[position]=new Vector<ImageView>();
}
vector[position].add(childView);
return childView;
}
}
对于每个位置,该方法getView(...)
可能会被多次调用,但每个位置只会显示一个返回的视图在活动上。我需要知道其中的哪一个。我认为这是最后一次调用 getView 以获得职位时返回的那个,但现在它总是正确的。