我有一个连接了onItemClickListener的ListView。在这个ListView中,我有一些行,每行都有一个CheckBox。
问题是:当我单击CheckBox时,Listener who答案是附加到列表的onItemClickListener。相反,我希望连接到CheckBox的onCheckedChagedListener能够应答。
我试着把它
android:descendantFocusability="blocksDescendants"在根项目或我的行布局中,我也尝试使用afterDescendants和beforeDescendants变体,但它们都不能帮助我实现我想要的结果。
我也在Stackoverflow和其他地方查看了一些答案,但我无法摆脱它……
我怎样才能同时拥有两个监听器,一个只在CheckBox上,另一个在整行上?
发布于 2015-04-11 00:11:04
试试这段代码,应该会有帮助。
@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){
}
});
}发布于 2015-04-11 00:14:43
您的checkbox不应该获得整个行,您应该将android:focusable="false"设置为您的checkbox,在您的适配器中,您应该将OnCheckedChangeListener设置为您的checkbox。
发布于 2015-04-11 00:24:12
添加这两个焦点android:clickable和android:,并将它们设置为false。
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="25dp"
android:layout_height="25dp"
android:clickable="false"
android:focusable="false"
>
</CheckBox>https://stackoverflow.com/questions/29565396
复制相似问题