我正在使用其他人为我的应用程序所做的设置,并且当用户无法正确连接到开发服务器时,我想取消选中CheckPreferenceBox。
我这样称呼我的CheckPreferenceBox:

CheckBoxPreference mCheck = (CheckBoxPreference) findViewById(R.id.prefs_dev_mode);
mCheck.setChecked(false);


这是我的.xml文件中与此相关的部分:

<CheckBoxPreference
        android:id="@+id/prefs_dev_mode"
        android:key="SP_DEV_SERVER"
        android:title="@string/prefs_server_title"
        android:summary="@string/prefs_server_summary"
        android:defaultValue="false"/>


您看到可能是什么错误吗?
谢谢

最佳答案

您面临的问题是CheckBoxPreference实际上不是View。它是Preference。因此,findViewById函数将不适用于您。

您不能像视图一样与此元素进行交互。

如果要取消选中它,则应该这样:

CheckBoxPreference pref = (CheckBoxPreference) getPreferenceScreen().findPreference("SP_DEV_SERVER");
pref.setChecked(false);

10-06 13:38