我的定制ListView是不可点击的。我正在使用setOnItemClickListener。我的ListView行包含一个按钮、图像视图和一些文本视图。请帮我把这些东西按一下。
发布于 2014-02-25 11:56:40
如果您使用ImageButton、CheckBox、Button等控件,那么您将面临讨论here和here的问题。
这仅仅是因为这样的控件可以从中窃取ListView焦点,并且不能选择/单击完整的列表项。
我假设您正在使用Adapter来设置列表的内容。在该适配器中,您可以为每一项分配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
            }
         }
         .......
    }
}但是请记住,当使用诸如ImageButton、CheckBox、Button等控件时,您需要在XML中分配属性CheckBox。对于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
        }
    });希望我回答了你的问题。
发布于 2014-02-25 11:54:18
将clickable=false设置为列表视图行(按钮)中的所有可单击视图。
https://stackoverflow.com/questions/22013386
复制相似问题