问题标签 [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.
android - 如何检测内部 PreferenceScreen 何时关闭
我Users
在另一个 PreferenceScreen(调用它)中有一个内部 PreferenceScreen(调用它Main
)。
当我点击Users
一个新屏幕时,我可以在那里更改我的首选项(很多复选框)。
我想检测(触发回调)何时关闭此屏幕以及何时返回Main
PreferenceScreen。
我发现的唯一方法是创建一个继承 PreferenceScreen 并重载的新类onPrepareForRemoval
我想知道是否有更简单的方法可以做到这一点。
android - Android:在选中/取消选中其他 CheckBoxPreference 时显示/隐藏首选项
我试图完成这样的事情:当我检查 CheckBoxPreference 'A' 时,另一个首选项('B')显示在 A 下面,当我取消选中'A'时,首选项'B'隐藏......
所以一般来说它应该像依赖一样工作,但不仅启用/禁用首选项 B,而且隐藏它。
这就是我想出的:
prefA 和 prefB 之前已被定义为 PreferenceFragment 类字段。
问题是它只适用于 2 次点击,我的日志说:
就像它调用 onPreferenceChangeListener 两次以取消选中(显然导致 .removePreference(prefB) 方法返回 null)。
关于解决问题的任何想法?
android - 在子屏幕首选项中的 actionBar 中显示 up-Button
我已经实现了我的偏好,如官方指南中所示。
我有一个 PreferenceActivity,它像这样创建 PreferenceFragment:
PreferenceFragment 从资源中加载首选项,它们包含一个首选项子屏幕,如下所示:
到目前为止效果很好,但是现在我希望up-Button
在显示首选项子屏幕时在 actionBar 中有一个。知道如何实现吗?
我曾尝试setDisplayHomeAsUpEnabled(true)
在我的活动中进行设置,但向上按钮仅显示在主要首选项中(不应该显示在哪里),而不是在子屏幕中。
我想知道即使在官方文档中,子屏幕也显示没有活动的向上按钮:
链接到文档:设置
非常欢迎任何帮助
android - PreferenceFragment 的 Android 单元测试
我有一些需要测试的 PreferenceFragment 类:
我该如何测试它们?
例如我试图:
但是这失败了,因为这个 Android 测试类要求参数继承自 Activity。PreferenceFragment 继承自 Fragment(由 Activity 使用)。
有什么建议?
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() 调用后对其进行修改。我想这是解决我问题的最佳方法。
希望这个答案能在未来节省一些人的时间 =) 再次感谢你们!
android - 偏好设置未在平板电脑上正确显示
我正在使用 aPreferenceFragment
并从 xml 的 onCreate-Method 加载首选项PreferenceFragment
:
这是preference_base.xml 的摘录:
这在模拟器和我的 Galaxy S4 上运行良好,符合预期。今天我在 GalaxyTab 上测试了该应用程序,现在首选项显示不正确:
这是我的 Galaxy S4 的截图:
这是 GalaxyTab 的截图
如您所见,在偏好视图中的横向模式中有一个奇怪的框架或边框。
知道为什么会发生这种情况以及如何解决这个问题吗?
编辑:
我现在在我的首选项中实现了首选项子屏幕,并且显示正确:
如果我按下向上按钮进入我的主要偏好页面,奇怪的框架/边框仍然存在。
恐怕这不会有太大帮助,但这里是我的偏好 xml 与子屏幕的摘录:
android - Android在没有xml的情况下动态地将表单字段添加到preferencefragment
似乎找不到任何不推荐使用的 (HONEYCOMB+) 示例来展示如何将动态创建的首选项添加到 apreferencefragment
而不是使用xml
预定义表单字段的资源。
具体来说,我正在尝试使用已与手机配对的蓝牙设备创建复选框列表。使用mBluetoothAdapter.getBondedDevices()
并且大概是CheckBoxPreference
.
任何建议将不胜感激。
android - 无法从偏好片段中获取视图
我有以下偏好片段 xml:
还有我上面指向的声音开关 widgetLayout:
我的问题是我需要在代码中获取开关,以便我可以附加 onClickListener。
我尝试在我的偏好活动中找到该视图:
我也在我的片段中尝试过:
如何以编程方式访问我放在首选项屏幕中的开关?
编辑: 有一个关于为什么我不使用 SwitchPreference 的问题。基本上我希望能够使用开关打开/关闭声音,但如果他们单击首选项(不是在开关上,而是在标题上),也能够切换到新的 PreferenceScreen。我尝试使用 SwitchPreference,但是当我单击文本时,它会切换开关并将我发送到 PreferenceScreen,而不仅仅是将我发送到 PreferenceScreen。
我正在尝试模仿主要设置中的 wifi 行为。IE 你可以从顶层打开/关闭开关,也可以点击文本访问更详细的屏幕。