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吗?