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