OnItemClick不适用于自定义适配器

时间:2014-06-06 07:47:48

标签: android onitemclicklistener custom-adapter

我有ListView Custom Adapter。我看过this thread,人们询问自定义视图中的项目是否有可点击的项目。是的,我在ImageView中有一个可点击的listrow。因此,点击其他任何地方(ImageView除外)应执行其他操作。我向onItemClickListener提供了ListView。但是,它不会在第一次单击时起作用,并且可以在两次三次单击时工作。

更新: 在我的适配器的getView方法中,我设置了像这样的onView:

holder.chatImageView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                            //Stuff here
                     }
        });

它工作正常,在我的活动中,我将onItemClickListener给了listView:

onlineListView.setOnItemClickListener(new OnItemClickListener() {


            @Override
            public void onItemClick(AdapterView parent, View view,
                    int position, long id) {
                //Stuff here

            }
        });

PS:我没有明确表达任何关注。

1 个答案:

答案 0 :(得分:1)

前段时间我遇到了同样的问题,但是CheckBox,我通过创建onClickListener作为自定义适配器的成员来解决它。例如

public MyAdapter extends BaseAdapter{
    // ... ..

    // ... ...

   private OnClickListener imageClickListener = new OnClickListener()
   {

       @Override
       public void onClick(View v)
       {
           /// your data .getTag()
           // process onClickListener for image
       }
   };

}

然后,在getView

if (convertView == null){
   //Create your views and register onClickListener
   holder.chatImageView.setOnClickListener(imageClickListener);

}

在xml中为您的图片添加android:focusable="false"

希望它有所帮助,这里有entire example