我有ListView
附加onItemClickListener
。
在ListView
内部,我有一些行,每行都有一个CheckBox
。
问题是:当我点击CheckBox
Listener
时,答案是onItemClickListener
附加到列表中的onCheckedChagedListener
。相反,我希望附加到CheckBox
的{{1}}能够回答。
我试图把
android:descendantFocusability="blocksDescendants"
在根项目或我的行布局上,我还尝试使用变体afterDescendants
和beforeDescendants
,但它们都没有帮助我达到我想要的效果。
我也在Stackoverflow和其他地方找到了一些答案,但我无法摆脱它......
我怎样才能拥有两个听众,一个只在CheckBox
上,一个在整行上?
答案 0 :(得分:1)
试试这段代码,应该有帮助。
@Override
public void onItemClick(AdapterView<?> parent, View itemClicked, int position, long id){
CheckBox cbx = (CheckBox)itemClicked.findViewById(R.id.cbxList);
cbx.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){
}
});
}
答案 1 :(得分:0)
您的checkbox
不应该排满整行,您应该将android:focusable="false"
设置为checkbox
,并在您的适配器中将OnCheckedChangeListener
设置为checkbox
1}}。
答案 2 :(得分:0)
添加 android:clickable&amp; android:focusable 并将它们设置为false。
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="25dp"
android:layout_height="25dp"
android:clickable="false"
android:focusable="false"
>
</CheckBox>