问题标签 [checkboxpreference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
218 浏览

android - PreferenceFragment 开始时的 ClassCastException

我有 2 个活动,MainActivity 和 SettingsActivity。当设置按钮被按下时,SettingsActivity 被启动并加载 PreferenceFragment。

应用程序在片段启动时立即崩溃:

9188/com.app.android.judge E/AndroidRuntime:致命异常:主进程:com.app.android.judge,PID:9188 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.app.android.judge/ com.app.android.judge.Settings.SettingsActivity}:java.lang.ClassCastException:java.util.HashSet 无法在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2666) 在 android 上转换为 java.lang.Boolean .app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727) 在 android.app.ActivityThread.-wrap12(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android .os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6121) 在 java.lang.reflect.Method。在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) 的 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) 调用(本机方法) 原因:java。 lang.ClassCastException: java.util.HashSet 不能在 android.preference.Preference.getPersistedBoolean(Preference.java:1702)在 android.preference.TwoStatePreference.onSetInitialValue(TwoStatePreference.java:188) 在 android.preference.Preference.dispatchSetInitialValue(Preference.java:1391) 在 android.preference.Preference.onAttachedToHierarchy(Preference.java:1185) 在 android。 android.preference.PreferenceGroup.addItemFromInflater(PreferenceGroup.java: 上的preference.PreferenceGroup.addPreference(PreferenceGroup.java:163)105) 在 android.preference.PreferenceGroup.addItemFromInflater(PreferenceGroup.java:104) 在 android.preference.GenericInflater.rInflate(GenericInflater.java:490) 在 android.preference.GenericInflater.rInflate(GenericInflater.java:495) 在 android。 preference.GenericInflater.inflate(GenericInflater.java:327) 在 android.preference.GenericInflater.inflate(GenericInflater.java:264) 在 android.preference。PreferenceManager.inflateFromResource(PreferenceManager.java:280) 在 android.preference.PreferenceFragment.addPreferencesFromResource(PreferenceFragment.java:326) 在 com.app.android.judge.Settings.MatchPreferenceFragment.onCreate(MatchPreferenceFragment.java:24) 在 android.app .Fragment.performCreate(Fragment.java:2336) 在 android.app.FragmentManagerImpl.moveToState(FragmentManager.java:949) 在 android.app.BackStackRecord.setLastIn(BackStackRecord.java:860) 在 android.app.BackStackRecord.calculateFragments(BackStackRecord.java:883) 在 android.app.BackStackRecord.run(BackStackRecord.java:728) 在 android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1578) 在 android。 app.FragmentController.execPendingActions(FragmentController.java:371) 在 android.app.Activity.performStart(Activity.java:6698) 在 android.app.ActivityThread。performLaunchActivity(ActivityThread.java:2629) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727) 在 android.app.ActivityThread.-wrap12(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread. java:1478) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6121) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) 在 com.android.internal.os.ZygoteInit。主要(ZygoteInit.java:779)主要(ZygoteInit.java:779)主要(ZygoteInit.java:779) 

我要启动的 PrefereneFragment 是:

XML文件是:

我看到了错误,并将其缩小到我的 CheckBoxPreference、XML 和 PreferenceFragment 之间发生的事情。不幸的是,不确定是什么。任何帮助表示赞赏。

编辑:我尝试重新安装应用程序并删除应用程序数据。错误仍然存​​在。

编辑:清理和重建没有修复。

编辑:最新的回购 - https://github.com/Jaren831/Judge/tree/production

0 投票
0 回答
398 浏览

android - CheckBoxPreference SwitchCompat 缺少动画

我花了 10 多个小时试图让开关的动画工作。

我尝试了很多东西,以至于我不记得有几次尝试了,但我会解释我记得的那些。

应该工作的代码(我认为):

我使用 widgetLayout 参数:

switchcompat_for_settings:

没有动画。

使用此代码扩展 SwitchCompat(最佳尝试??): https ://gist.github.com/antifriz/ad4412b72d50f63ec977

从假到真有动画,从真到假没有动画。

非理想行为(但可以接受,如果无法阻止):如果值为 true,则在加载活动时播放动画。

使用以下代码进行扩展:

在 Android Lollipop 中扩展 Preference 类 = 丢失动画

根本没有动画。

使用 SwitchPreference:

在 Lollipop 之前它有旧视图,所以不理想,因为我需要在 Lollipop 之前和之后使用不同的 xml。如果我只有一个 SwitchPreference 我仍然没有动画。通过几个连续的 SwitchPreferences,我得到了一个动画,但只有一个(我还检查了一个带有设置模板的新项目和同样的问题)。

此外,我更喜欢在任何偏好中都没有动画,而不是除了一个之外的所有动画。

添加第二个开关:

switchcompat_for_settings我添加了第二个 SwitchCompat 并将id=@android:id/checkbox设置为不可见。我扩展 CheckboxPreference 以覆盖 onBindView,并在调用后super.onBindView找到额外的 SwitchCompat 并调用setChecked适当的值。

onPreferenceClick中,我调用了我的额外开关的 setChecked。

它在没有动画的情况下切换。我的理解是,问题在于 onBindView 被调用了很多次(在创建首选项时,以及每次我切换它时),它会取消动画。

我试图添加一个布尔值来调用 onBindView 中的 setChecked ,仅在从 onClick 调用但没有成功之后。也许这是要走的路,我做错了什么。

唯一剩下的想法(不愿意这样做): 手动将开关添加到活动根视图,放置在正确的位置并处理具有此偏好的每个活动(几个)。

0 投票
1 回答
159 浏览

android - 在自定义 CheckBoxPreference 上膨胀类时出错

我创建了一个自定义CheckBoxPreference类,以防止在CheckBoxPreference用户单击 CheckBox 本身以外的任何其他内容时单击 。

它昨天在离开之前运行良好,但由于一个奇怪的原因它今天不起作用。该应用程序崩溃,我收到此错误:

致命异常:主进程:ca.qc.gouv.stat.kth,PID:19543 java.lang.RuntimeException:无法启动活动 ComponentInfo{ca.qc.gouv.stat.kth/ca.qc.gouv.stat.kth .AppPreferenceActivity}:android.view.InflateException:二进制 XML 文件第 24 行:膨胀类 ca.qc.gouv.stat.kth.CustomCheckBoxPreference 时出错

它在代码中的这一行崩溃: addPreferencesFromResource(R.xml.preferences);

我几乎可以肯定,除了在今天早上的主要活动中添加 Log.i 行之外,我没有对项目进行任何更改。我试图评论这一行。清理项目缓存。刷新 Gradle 项目。谷歌搜索返回给我很多关于Error inflating 类的结果,我认为解决方案与提出的问题一样多。它看起来像一个非常普遍的错误。

如果我CheckBoxPreferencepreferences.xml文件中的自定义替换为普通文件,则它可以工作。如果我在我的自定义类中放置断点,CheckBoxPreference它不会中断它们。看起来类的代码永远不会执行。我完全迷失了,因为我 100% 肯定它昨天还在工作。

这是CheckBoxPreference我做的自定义类:

这是preferences.xml文件:

针对 api 26,最小 api 21;

0 投票
2 回答
2110 浏览

android - 来自共享首选项的特定时间通知

我正在制作一个应用程序,我希望用户在共享首选项中指定时间,然后我将使用该时间来启动通知,无论他们是否在应用程序中,例如user-defined alarm notification.

我已经尝试了一切,但我不知道如何使它工作。如果首选项(复选框)为真,则通知应每天在该特定时间出现。

0 投票
1 回答
58 浏览

android - 声明 CheckBoxPreference 时不成功的强制转换

在我的活动中为我的应用程序设置声明后,会在“”行中CheckboxPreference出现警告。应该怎么做才能使演员阵容成功?asval mCheckBoxPreference = findPreference("preference_a") as CheckBoxPreference

这个演员永远不会成功

app_preferences.xml

片段类

活动课

0 投票
1 回答
262 浏览

android - 如何检查 CheckBoxPreference 是否被选中?

我有一个设置页面,我在其中添加了CheckBoxPreference我需要检查复选框是否被选中?我的代码是:

在settingActivity.java

此代码始终返回 false;添加上面的代码后,它不会变为 false。你能帮我如何实现这一目标吗?

0 投票
1 回答
37 浏览

android - 如何评估复选框偏好?

我想评估 checkboxpreference,从这里尝试了一些方法,但没有奏效。我需要在 OnSharedPreferenceChangeListener 中获取值,而不是在 PreferenceActivity 中。它给出了如下错误: ava.lang.ClassCastException: android.app.SharedPreferencesImpl cannot be cast to android.support.v7.preference.CheckBoxPreference 有人可以解释这个问题吗?

感谢所有帮助,解决方案在 MAinActivity onCreate() 中: