自定义列表视图行不可点击

问题描述:

我的自定义ListView不可点击。我正在使用setOnItemClickListener。我的ListView行包含一个按钮,图像视图和一些文字浏览。请帮助我使物品可点击。自定义列表视图行不可点击

+4

添加一些代码片段。 – 2014-02-25 11:53:26

+0

试图在网上找到解决方案,检查这个答案http://*.com/a/12813906/1168654 –

+0

set your android:focusable =“false”''你的自定义'ListView'项目布局中的所有'视图'。 .. –

的情况下,如果你使用的控制一样ImageButtonCheckBoxButton等,那么你将面临讨论herehere问题。

这仅仅是因为这样的控制可以窃取从ListView焦点和不能被选择的完整列表项/点击。

我假设您使用适配器来设置您的列表的内容。该适配器在里面你可以指定onClickListener() S表示这样每个项目:

public class MyListAdapter extends ArrayAdapter<String>{ 
    ....... 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View rowView=inflator.inflate(R.layout.list_item, null, true); 
     ImageView image=(ImageView) rowView.findViewById(R.id.image1); 
     image.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //do something 
      } 
     } 

     Button button=(ImageView) rowView.findViewById(R.id.button1); 
     button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //do something 
      } 
     } 
     ....... 
    } 
} 

但请记住,在使用像ImageButtonCheckBoxButton你需要在XML指派属性android:focusable="false"控制。并为ImageButton你需要这样做的getView()方法中:

final ImageButton imgBtn=(ImageButton) rowView.findViewById(R.id.imgBtn); 
    imgBtn.setFocusable(false); 
    imgBtn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      //do your task here 
     } 
    }); 

希望我回答你的问题。

将clickable = false设置为像列表视图行中的所有可点击视图(按钮)。