java - 不兼容的类型 : Cannot Cast View to CheckPreferenceBox

标签 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"/>

你看出可能是什么错误了吗? 谢谢

最佳答案

您面临的问题是 CheckBoxPreference 实际上并不是一个 View 。这是一个Preference 。因此 findViewById 函数对您不起作用。

您无法像 View 一样与此元素交互。

如果你想将其设置为取消选中,你应该这样做:

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

关于java - 不兼容的类型 : Cannot Cast View to CheckPreferenceBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34793450/

相关文章:

java - Android Studio 中的 Maven 存储库是什么?

android - 第二次运行后我收到消息 "Only the original thread that created a view hierarchy can touch its views."

Android Gradle 构建 : duplicate entry: META-INF/app_release. kotlin_module

android - 生成的 APK 的 SHA1 指纹与 Keystore 的指纹不匹配

java - 删除家谱中的节点

java - 如何在Gson中将对象序列化为单个值?

android - 来电启动服务

android - Realm 使用 RxJava 在事务中复制对象的正确方法

Android Studio 链接 OpenCV 静态库

java - Retrofit2 - 在带有正文的 POST 上收到 400 个错误请求