不兼容的类型:无法将视图转换为CheckPreferenceBox

时间:2016-01-14 15:33:38

标签: java android android-studio

我正在玩别人为我的应用程序设置的设置,我想在用户无法正确连接到开发服务器时取消选中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"/>

你看到错误是什么? 感谢

1 个答案:

答案 0 :(得分:1)

您面临的问题是CheckBoxPreference实际上不是视图。这是一个Preference。因此findViewById函数不适合你。

您无法像View一样与此元素进行互动。

如果你想取消选中它,你应该这样:

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