问题标签 [support-preference]
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 - 如何使用 v7/v14 首选项支持库?
与 M 版本一起,还有新的支持库。其中一个似乎非常有用的是v7 Preference Support库。
它似乎没有PreferenceActivity
或类似的东西,我们如何将它集成到我们的应用程序中?
android - 带有 PreferenceFragmentCompat 的验证错误
我正在尝试使用 Support v7 PreferenceFragmentCompat
,但是当我启动应用程序时,我VerifyError
在创建其对象实例时得到了这个:
我尝试使用的代码就像这样简单:
这只发生在PreferenceFragmentCompat
, (例如我对此没有任何问题:)new android.support.v7.preference.EditTextPreference();
。
在使用支持库之前,android API 一切正常PreferenceFragment
。支持库已正确链接到项目中(我正在使用也支持片段和工具栏,完全没有问题)。
在这一点上,我完全被卡住了,我真的不知道在哪里寻找。
android - 设置 OnSharedPreferenceChangeListener 时的 PreferenceCompatFragment 空指针
我正在使用PreferenceCompatFragment
我的代码中提到的,但是在更改设置时设置监听器有问题。
OnSharedPreferenceChangeListener
我已经在我的中实现了,Activity
所以我尝试在片段将附加到视图/容器时设置提到的侦听器,但我一直都在获取空指针PreferenceManager.getDefaultSharedPreferences(getActivity());
大多数示例都是以 Fragment 也实现侦听器的方式构造的 - 在我的情况下,我想单独进行。
android - 无法让 PreferenceFragmentCompat 工作
我正在尝试创建一个扩展 AppCompatActivity 并在其中有两个片段的 Activity(一个在另一个之下 - 只需使用 LinearLayout)。我希望第一个片段从 support-v7 库中扩展 PreferenceFragmentCompat 类。
我遵循了 Google 关于 PreferenceFragmentCompat 的简短示例,如https://developer.android.com/reference/android/support/v7/preference/PreferenceFragmentCompat.html所示。
这是我当前的代码:
GroupDetailsActivity.java
GroupDetailsPrefFragment .java - 有问题的片段
GroupDetailsMembersFragment.java - 现在完全是空的..
activity_group_details.xml - 活动的布局
group_details_preferences.xml - 首选项 XML 文件
尝试编译和运行上面的代码导致我遇到一些错误,第一个是关于未设置的首选项主题。我快速浏览了互联网,发现您需要将以下行添加到您的活动主题中:<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
为此,我需要将 support-v14 库添加到 gradle!
尝试再次运行代码,导致我出现另一个错误,这就是我发布此问题的原因,到目前为止我还没有找到解决此问题的任何方法。这是崩溃日志:
一直停留在这个问题上,尝试在 stackoverflow 或其他网站上查找不同的帖子,看到了一些解决方案,但由于某种原因,他们都没有解决我的问题。
编辑:
我的 gradle 文件包含以下内容:
2017 年 1 月 2 日更新
我一直在查看源代码PreferenceFragmentCompat
并看到它正在尝试加载以下布局:R.layout.preference_list_fragment
. 在onCreateView()
类的方法中,它正在膨胀布局,并试图寻找 id android.R.id.list_container
。问题是布局中没有这样的 id。
这是来自的代码片段PreferenceFragmentCompat
:
尽管
仍在寻找解决方案,谢谢!
android - v7 PreferenceScreen 缺少布局编辑器“设计”按钮
通常preferences.xml
在 Android Studio 中编辑文件时,可以通过点击屏幕左下方的“设计”按钮切换到布局编辑器:
单击按钮后,将显示此 xml 文件的布局编辑器:
但是当我更改PreferenceScreen
为android.support.v7.preference.PreferenceScreen
(如建议here)时,按钮消失(需要重新打开xml文件才能看到此效果):
- 这种行为是正常的还是这只是我的 Android Studio 安装(Windows 上的 v3.1.1) - 即布局编辑器尚未针对 v7 首选项 xml 文件实现?
- 无论如何,在使用 v7 首选项时是否可以打开布局编辑器?是否存在好的解决方法?
- 似乎没有
android.support.v7.preference.PreferenceScreen
在 xml 文件中明确声明仍然适用于 v7 首选项,因此不知何故在幕后将其android.preference.PreferenceScreen
转换为 a 。android.support.v7.preference.PreferenceScreen
使用 v7 首选项并且未在 xml 文件中明确声明时是否有任何缺点android.support.v7.preference.PreferenceScreen
(因此仍然可以使用布局编辑器)?有什么区别,如果有的话(除了关于不允许的 xml-elements 的可能编译器警告)?