Android 安卓:点击适配器给出错误的位置

Android 安卓:点击适配器给出错误的位置,android,android-listview,listener,android-adapter,android-adapterview,Android,Android Listview,Listener,Android Adapter,Android Adapterview,我正在开发一个应用程序,其中有一个带有自定义适配器的列表视图。我正在将ArrayList附加到自定义适配器。适配器有四个图像视图,onclick listener应用于get view中的每个图像视图 我根据以下条件从其他两个arraylist填充数组列表: /* Condition 1 */ for(int i = 0; i < arrayList.size(); i++){ if( a == id){ arrayList1.add(arrayListOther

我正在开发一个应用程序,其中有一个带有自定义适配器的列表视图。我正在将ArrayList附加到自定义适配器。适配器有四个图像视图,onclick listener应用于get view中的每个图像视图

我根据以下条件从其他两个arraylist填充数组列表:

/* Condition 1 */
for(int i = 0; i <  arrayList.size(); i++){
    if( a == id){
        arrayList1.add(arrayListOther.get(i));
    }
}

/* condition 2  */
for(int i = 0; i <  arrayList.size(); i++){
    arrayList1.add(arrayList.get(i));
}

我不明白这有什么不对。请建议我该怎么做。

向imageview添加标签,如下所示:

        holder.image1 = (ImageView) view.findViewById(R.id.imageView1);
        holder.image2 = (ImageView) view.findViewById(R.id.imageView2);
        holder.image3 = (ImageView) view.findViewById(R.id.imageView3);
        holder.image4 = (ImageView) view.findViewById(R.id.imageView4);  
        holder.image1.setTag(position);

  holder.image1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {        
            // Also having Async task
              Integer index = (Integer) v.getTag();
        }
    });

在listview中可以看到多少行?一行的大小非常大,因此我可以多次看到第二行的1.5行,有时可以看到第二行的2.5行,有时可以看到单个行,这取决于数据和图像的大小。我应该在位置处使用索引吗?索引与onClickListerner中的位置相同,您可以在定位、打印和查看时处理该问题
        holder.image1 = (ImageView) view.findViewById(R.id.imageView1);
        holder.image2 = (ImageView) view.findViewById(R.id.imageView2);
        holder.image3 = (ImageView) view.findViewById(R.id.imageView3);
        holder.image4 = (ImageView) view.findViewById(R.id.imageView4);  
        holder.image1.setTag(position);

  holder.image1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {        
            // Also having Async task
              Integer index = (Integer) v.getTag();
        }
    });