Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 适配器';对同一位置多次调用getView,如何知道屏幕上会出现什么视图?_Android_Android Activity_Adapter - Fatal编程技术网

Android 适配器';对同一位置多次调用getView,如何知道屏幕上会出现什么视图?

Android 适配器';对同一位置多次调用getView,如何知道屏幕上会出现什么视图?,android,android-activity,adapter,Android,Android Activity,Adapter,我知道适配器的getView方法被多次调用的原因,但是有没有办法知道返回的视图中的哪一个将实际显示在活动上 到目前为止,我将所有链接到同一位置的返回视图放在列表中,每次我需要修改显示的视图时,我都会修改与该位置对应的所有视图(其中一个将是正确的…)。 当然不是最好的方式 下面是我的适配器的一段代码: class MyAdapter extends BaseAdapter { Vector<ImageView> vectorView[] = new Vector<Imag

我知道适配器的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;
    }
}
类MyAdapter扩展了BaseAdapter{
向量向量视图[]=新向量[25];
公共MyAdapter(活动上下文){
...
}
公共DoSomeStuffOnView(内部位置){
//需要知道哪个视图对应于给定的位置
//为了避免出现以下循环故障:
对于(ImageView iv:向量[位置]){
//做点什么
}
}
公共视图getView(内部位置,…){
ImageView子视图=。。。;
if(向量[位置]==null){
向量[位置]=新向量();
}
向量[位置]。添加(子视图);
返回儿童视图;
}
}

方法
getView(…)
可能会为每个位置调用多次,但每个位置只会在活动上显示一个返回的视图。我需要知道这些中的哪一个。我原以为这是上次调用getView获取职位时返回的结果,但现在它总是正确的。

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