我有以下代码:
<CheckBoxPreference
android:defaultValue="true"
android:key="@key/pref_airship"
android:persistent="true"
android:title="@string/pref_airship" />
根据此代码,第一次启动应用程序时会检查Checkbox。但我希望永久性地选中该复选框,并且用户无法取消选中此复选框(例如,它会更改颜色并始终保持选中状态)。有什么建议怎么做?
答案 0 :(得分:2)
解决方案很简单:禁用java代码中的点击(不是XML)。在onCreate(),onStart(),onResume()或设置首选项布局的地方执行以下操作:
CheckBoxPreference airshipPref = (CheckBoxPreference) findPreference("pref_airship");
airshipPref.setEnabled(false);
这样,它不会处理点击,也不应该听取用户输入,因此总是会检查。
答案 1 :(得分:0)
或者,您可以继承CheckBoxPreference
来创建自定义首选项:
public class DisabledCheckBoxPreference extends CheckBoxPreference{
public DisabledCheckBoxPreference(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public DisabledCheckBoxPreference(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public DisabledCheckBoxPreference(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onBindView(View view) {
view.setEnabled(false);
super.onBindView(view);
}
}
用法:
<com.your.package.name.DisabledCheckBoxPreference
android:defaultValue="true"
android:key="@key/pref_airship"
android:persistent="true"
android:title="@string/pref_airship" />