问题标签 [preferencefragment]

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 投票
1 回答
1474 浏览

android - 如何检测内部 PreferenceScreen 何时关闭

Users在另一个 PreferenceScreen(调用它)中有一个内部 PreferenceScreen(调用它Main)。
当我点击Users一个新屏幕时,我可以在那里更改我的首选项(很多复选框)。
我想检测(触发回调)何时关闭此屏幕以及何时返回MainPreferenceScreen。
我发现的唯一方法是创建一个继承 PreferenceScreen 并重载的新类onPrepareForRemoval

我想知道是否有更简单的方法可以做到这一点。

0 投票
1 回答
3238 浏览

android - Android:在选中/取消选中其他 CheckBoxPreference 时显示/隐藏首选项

我试图完成这样的事情:当我检查 CheckBoxPreference 'A' 时,另一个首选项('B')显示在 A 下面,当我取消选中'A'时,首选项'B'隐藏......

所以一般来说它应该像依赖一样工作,但不仅启用/禁用首选项 B,而且隐藏它。

这就是我想出的:

prefA 和 prefB 之前已被定义为 PreferenceFragment 类字段。

问题是它只适用于 2 次点击,我的日志说:

就像它调用 onPreferenceChangeListener 两次以取消选中(显然导致 .removePreference(prefB) 方法返回 null)。

关于解决问题的任何想法?

0 投票
3 回答
7702 浏览

android - 在子屏幕首选项中的 actionBar 中显示 up-Button

我已经实现了我的偏好,如官方指南中所示。

我有一个 PreferenceActivity,它像这样创建 PreferenceFragment:

PreferenceFragment 从资源中加载首选项,它们包含一个首选项子屏幕,如下所示:

到目前为止效果很好,但是现在我希望up-Button在显示首选项子屏幕时在 actionBar 中有一个。知道如何实现吗?

我曾尝试setDisplayHomeAsUpEnabled(true)在我的活动中进行设置,但向上按钮仅显示在主要首选项中(不应该显示在哪里),而不是在子屏幕中。

我想知道即使在官方文档中,子屏幕也显示没有活动的向上按钮: 设置子屏幕

链接到文档:设置

非常欢迎任何帮助

0 投票
1 回答
632 浏览

android - PreferenceFragment 的 Android 单元测试

我有一些需要测试的 PreferenceFragment 类:

我该如何测试它们?

例如我试图:

但是这失败了,因为这个 Android 测试类要求参数继承自 Activity。PreferenceFragment 继承自 Fragment(由 Activity 使用)。

有什么建议?

0 投票
1 回答
1818 浏览

android - PreferenceFragment 中的首选项未更新

我有一个加载 PreferenceFragment 的主要活动(它是 actionBar 的一部分)。

在 PreferenceFragment 中,我从 XML 文件加载我的首选项:

问题是如果我更改选项卡(记住它是由 ActionBar 管理的),更改不同片段中的一个首选项并返回我的首选项片段,但它没有得到更新。特别是问题是 SwitchPreference(true/false) 可以从不同的片段甚至通过远程调用进行更改(然后共享首选项中的首选项正在更改。是的,我确实提交了更改)。

我搜索了不同的解决方案,但老实说,我没有找到一个可行的解决方案。我自己的想法如下:

如果我可以获得开关的 Switch 元素,我的问题将得到解决,因此我可以在 onStart() 或 onResume() 方法中将开关设置为 true。但是获取 Switch 对象有什么变化吗?如果我要加载通常的布局,我可以像这样访问开关:

之后我就可以像这样设置开关的位置:

另一种解决方案是破坏实际视图并再次调用 addPreferencesFromResource() ,但老实说我不知道​​如何做到这一点......

第三种解决方案可能是在我的 PreferenceFragment 中使用 OnCheckedChangeListener,但问题再次是如何更改/更新开关。

我确信 Preference 已正确更新,因为我正在我的一项服务中运行 OnSharedPreferenceChangeListener 并调试此问题,我让监听器记录了我的 switchPreference 的状态。

你能以某种方式帮助我吗?


不幸的是,我无法在明天早上之前回答我自己的问题,所以我编辑了我的问题:

谢谢你们,我不想重新启动底层活动,而只想重新启动片段。

幸运的是,我在这个帖子中找到了一条线索:如何刷新 PreferenceActivity 以显示设置的更改?

我真的可以这么简单地访问 SwitchPreference。我的解决方案是:

这样,我可以简单地将 Preference 转换为 SwitchPreference 并在每次 onStart() 调用后对其进行修改。我想这是解决我问题的最佳方法。

希望这个答案能在未来节省一些人的时间 =) 再次感谢你们!

0 投票
1 回答
1299 浏览

android - 偏好设置未在平板电脑上正确显示

我正在使用 aPreferenceFragment并从 xml 的 onCreate-Method 加载首选项PreferenceFragment

这是preference_base.xml 的摘录:

这在模拟器和我的 Galaxy S4 上运行良好,符合预期。今天我在 GalaxyTab 上测试了该应用程序,现在首选项显示不正确:

这是我的 Galaxy S4 的截图: 在此处输入图像描述

这是 GalaxyTab 的截图 在此处输入图像描述

如您所见,在偏好视图中的横向模式中有一个奇怪的框架或边框。

知道为什么会发生这种情况以及如何解决这个问题吗?


编辑:

我现在在我的首选项中实现了首选项子屏幕,并且显示正确: 在此处输入图像描述

如果我按下向上按钮进入我的主要偏好页面,奇怪的框架/边框仍然存在。

恐怕这不会有太大帮助,但这里是我的偏好 xml 与子屏幕的摘录:

0 投票
1 回答
114 浏览

android - PreferenceFragment 编译但我的程序不起作用。有什么事 ?异常代码在这里

0 投票
1 回答
1208 浏览

android - Android在没有xml的情况下动态地将表单字段添加到preferencefragment

似乎找不到任何不推荐使用的 (HONEYCOMB+) 示例来展示如何将动态创建的首选项添加到 apreferencefragment而不是使用xml预定义表单字段的资源。

具体来说,我正在尝试使用已与手机配对的蓝牙设备创建复选框列表。使用mBluetoothAdapter.getBondedDevices()并且大概是CheckBoxPreference.

任何建议将不胜感激。

0 投票
2 回答
277 浏览

android - 我的程序连续给出错误。你能帮助我吗?我已经很努力但没有改善错误

0 投票
2 回答
4040 浏览

android - 无法从偏好片段中获取视图

我有以下偏好片段 xml:

还有我上面指向的声音开关 widgetLayout:

我的问题是我需要在代码中获取开关,以便我可以附加 onClickListener。

我尝试在我的偏好活动中找到该视图:

我也在我的片段中尝试过:

如何以编程方式访问我放在首选项屏幕中的开关?

编辑: 有一个关于为什么我不使用 SwitchPreference 的问题。基本上我希望能够使用开关打开/关闭声音,但如果他们单击首选项(不是在开关上,而是在标题上),也能够切换到新的 PreferenceScreen。我尝试使用 SwitchPreference,但是当我单击文本时,它会切换开关并将我发送到 PreferenceScreen,而不仅仅是将我发送到 PreferenceScreen。

我正在尝试模仿主要设置中的 wifi 行为。IE 你可以从顶层打开/关闭开关,也可以点击文本访问更详细的屏幕。