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

时间:2014-02-25 11:52:38

标签: android

我的自定义ListView无法点击。我正在使用setOnItemClickListener。我的ListView行包含按钮,图片视图和一些文本视图。请帮我点击这些项目。

2 个答案:

答案 0 :(得分:0)

将clickable = false设置为listview行中的所有可点击视图,如(按钮)。

答案 1 :(得分:0)

如果您使用ImageButtonCheckBoxButton等控件,则会遇到问题herehere
这只是因为此类控件可以从ListView窃取焦点,并且无法选择/点击完整的列表项

我假设您使用适配器来设置列表的内容。在该适配器内,您可以为每个项目指定onClickListener(),如下所示:

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
        }
    });

希望我回答你的问题。