如何永久选中android复选框

如何永久选中android复选框,android,checkbox,Android,Checkbox,我有以下代码: <CheckBoxPreference android:defaultValue="true" android:key="@key/pref_airship" android:persistent="true" android:title="@string/pref_airship" /> 根据此代码,在应用程序首次启动时选中复选框。但我希望该复选框被永久选中,并且用户不能取消选中该复选框(例如,

我有以下代码:

 <CheckBoxPreference
        android:defaultValue="true"
        android:key="@key/pref_airship"
        android:persistent="true"
        android:title="@string/pref_airship" />


根据此代码,在应用程序首次启动时选中复选框。但我希望该复选框被永久选中,并且用户不能取消选中该复选框(例如,它会更改其颜色并始终保持选中状态)。有什么建议吗

解决方案很简单:在java代码(而不是XML)中禁用单击。在onCreate()、onStart()、onResume()或设置首选项布局的位置执行以下操作:

CheckBoxPreference airshipPref = (CheckBoxPreference) findPreference("pref_airship");
airshipPref.setEnabled(false);

这样,它就不会处理点击,也不应该监听用户输入,因此始终保持选中状态。

或者,您可以继承
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" />