ListView中的CheckBox - 无法选择CheckBox

时间:2015-04-10 15:36:06

标签: android android-listview onclicklistener android-checkbox

我有ListView附加onItemClickListener。 在ListView内部,我有一些行,每行都有一个CheckBox

问题是:当我点击CheckBox Listener时,答案是onItemClickListener附加到列表中的onCheckedChagedListener。相反,我希望附加到CheckBox的{​​{1}}能够回答。

我试图把

android:descendantFocusability="blocksDescendants"

在根项目或我的行布局上,我还尝试使用变体afterDescendantsbeforeDescendants,但它们都没有帮助我达到我想要的效果。

我也在Stackoverflow和其他地方找到了一些答案,但我无法摆脱它......

我怎样才能拥有两个听众,一个只在CheckBox上,一个在整行上?

3 个答案:

答案 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>