onCheckedChanged 未在 AppCompatCheckBox 视图上调用
onCheckedChanged not called on AppCompatCheckBox view
我在代码中动态创建了一些自定义复选框视图。这些复选框继承自 AppCompatCheckBox。
public class ChangeableSelectionParameterValueCheckbox extends android.support.v7.widget.AppCompatCheckBox
我在代码中添加了 OnCheckChangedListener。
添加的 OnCheckedChangeListener 是一个 android.widget.CompoundButton.OnCheckedChangeListener;
changeableSelectionParameterValueCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//on checked changed code here
}
});
问题:永远不会调用onCheckedChanged。自定义复选框似乎不可点击。
当我将自定义视图 class 更改为继承自 android.widget.CheckBox 时,一切正常。
有什么建议吗?
我遇到了同样的问题,通过将 属性 "clickable" 设置为 true 解决了这个问题。
它在代码和 XML 中都有效,因此请选择以下解决方案之一:
AppCompatCheckbox check;
check.setClickable(true);
<android.support.v7.widget.AppCompatCheckBox xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/id_checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:gravity="center_vertical"/>
我在代码中动态创建了一些自定义复选框视图。这些复选框继承自 AppCompatCheckBox。
public class ChangeableSelectionParameterValueCheckbox extends android.support.v7.widget.AppCompatCheckBox
我在代码中添加了 OnCheckChangedListener。
添加的 OnCheckedChangeListener 是一个 android.widget.CompoundButton.OnCheckedChangeListener;
changeableSelectionParameterValueCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//on checked changed code here
}
});
问题:永远不会调用onCheckedChanged。自定义复选框似乎不可点击。
当我将自定义视图 class 更改为继承自 android.widget.CheckBox 时,一切正常。
有什么建议吗?
我遇到了同样的问题,通过将 属性 "clickable" 设置为 true 解决了这个问题。 它在代码和 XML 中都有效,因此请选择以下解决方案之一:
AppCompatCheckbox check;
check.setClickable(true);
<android.support.v7.widget.AppCompatCheckBox xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/id_checkbox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:gravity="center_vertical"/>