Listview item点击事件无效,再一次被坑

来源:互联网 发布:php过滤sql注入函数 编辑:程序博客网 时间:2024/05/17 09:13

背景:昨天晚上加班,天又下雨急着回去,但是一个再普通不过的问题,把我困住了

问题:一个listview的DialogFragment中,listview的item上有个RadioButton,本来是把点击事件放在RadioButton上的,但是现在需要改成点击Item就等于点击RadioButton。问题来了,监听不到setOnItemClickListener事件,纠结了很久,发现Button,RadioButton等控件会抢了item的响应。

解决方案:在RadioButton等控件上添加属性

 android:clickable="false"

        android:focusable="false"

        android:focusableInTouchMode="false"

切记不能在整个Item的布局的根布局上加clickable="true"

这样就可以响应Item的点击事件,当用item的点击事件联动RadioButton的时候,有个技巧,可以通过控制数据的isSelected事件,来实现

  listView.setOnItemClickListener(new OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {                updateSelectView(position);            }        });
  protected void updateSelectView(int position) {        for (int i = 0; i < musicList.size(); i++) {            if (i == position) {                musicList.get(i).setSelected(true);            } else {                musicList.get(i).setSelected(false);            }        }        adapter.notifyDataSetChanged();    }
这个bug搞的我都怀疑人生怀疑理想了,bug解决,立马又豪气干云天。。。真贱




0 0
原创粉丝点击