0

我知道多次调用 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 以获得职位时返回的那个,但现在它总是正确的。

4

1 回答 1

0

一种方法,但它不是标准的..您可以直接检查整数变量,即硬编码类型。您的 xml 文件中有视图列表。jst 交叉检查并与整数变量进行比较。

于 2013-05-24T09:30:52.377 回答