Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android PreferenceFragmentCompany在根键上的onCreatePreferences中显示null_Android_Preferencefragment_Preferencescreen - Fatal编程技术网

Android PreferenceFragmentCompany在根键上的onCreatePreferences中显示null

Android PreferenceFragmentCompany在根键上的onCreatePreferences中显示null,android,preferencefragment,preferencescreen,Android,Preferencefragment,Preferencescreen,我在尝试为我的android应用程序开发nested设置时遇到了PreferenceFragmentCompat问题。我有Fragment调用的设置Fragment,其中我有以下方法: @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { Log.d("KEY", rootKey + "KEY"); setPreferencesFromR

我在尝试为我的
android
应用程序开发
nested
设置时遇到了
PreferenceFragmentCompat
问题。我有
Fragment
调用的设置
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,它具有嵌套的首选项屏幕

<?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
的含义。 阅读上面的文档

字符串:如果非空,则此首选项片段应使用此键在
首选项屏幕
中扎根

这意味着如果您的
首选项屏幕
是您的主
首选项屏幕
,在您的情况下,带有键属性
测试的屏幕
,则
根键
设置为
。对于将以不同方式打开的子屏幕,
rootKey
将设置为
test
,因为这些是带有
test
键的
首选项屏幕的子屏幕

不过,你应该看看。它说:

不再支持使用嵌套的
在同一XML资源中声明嵌套层次结构。您应该使用嵌套的
片段
对象


另请参见:和

您可能想看看,确保您是从AppCompatActivity继承的,等等。您所说的“我总是为Logcat设置null”到底是什么意思?您可以发布Logcat吗?