gpt4 book ai didi

android - PreferenceFragmentCompant 在 rootKey 上的 onCreatePreferences 中显示为空

转载 作者:行者123 更新时间:2023-11-29 02:25:52 25 4
gpt4 key购买 nike

我在尝试为我的 android 应用程序开发 nested 设置时遇到 PreferenceFragmentCompat 问题。我有 Fragment 调用 Settings Fragment 我有以下方法:

@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
Log.d("KEY", rootKey + "KEY");
setPreferencesFromResource(R.xml.pref_main, rootKey);
}

但是,当我运行该应用程序时,我总是向 Logcat 返回 null。这是我的 pref_main.xml,它嵌套了 PreferencesScreen。

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:key="test">
<PreferenceScreen
android:key="button_voicemail_category_key"
android:title="test"
android:persistent="false">
<EditTextPreference
android:defaultValue="Default value"
android:key="edit_text_preference_1"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Edit text preference" />
</PreferenceScreen>

<CheckBoxPreference
android:defaultValue="true"
android:key="check_box_preference_1"
android:title="Check box preference" />
</PreferenceScreen>

你知道问题出在哪里吗,因为我尝试了很多不同的方法,但找不到解决问题的办法。

期待您的回复!

最佳答案

您可能误解了 rootKey 的含义.阅读它说的文档

String: If non-null, this preference fragment should be rooted at the PreferenceScreen with this key.

这意味着如果您的 PreferenceScreen是你的主PreferenceScreen ,在您的情况下,屏幕具有键属性 test , rootKey设置为 null .对于以不同方式打开的子屏幕,rootKey将设置为 test , 因为那些是 PreferenceScreen 的 child 用 key test .

但是,您应该查看 the current guide .它说:

Declaring nested hierarchies within the same XML resource using a nested <PreferenceScreen> is no longer supported. You should use nested Fragment objects instead.

另请参阅:onCreatePreferencesOrganizing your settings

关于android - PreferenceFragmentCompant 在 rootKey 上的 onCreatePreferences 中显示为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52256277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com