我知道为什么多次调用适配器的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时返回的位置,但现在总是如此。
答案 0 :(得分:0)
单向但不标准..你可以用整数变量直接检查,即硬编码类型。您的xml文件中包含视图列表。 jst cross check&amp;与整数变量进行比较。