Android 首选项不以编程方式显示在子屏幕中
我遵循了可能的解决方案,但这只适用于根首选项屏幕。我正在使用v7支持首选项屏幕和首选项FragmentCompat preference.xmlAndroid 首选项不以编程方式显示在子屏幕中,android,preferences,preferencefragment,Android,Preferences,Preferencefragment,我遵循了可能的解决方案,但这只适用于根首选项屏幕。我正在使用v7支持首选项屏幕和首选项FragmentCompat preference.xml <android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <android.support.v7.preference.PreferenceScreen
<android.support.v7.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.v7.preference.PreferenceScreen
android:key="pref_key_r"
android:persistent="false"
android:summary="@string/a"
android:title="@string/pref_title_r">
</android.support.v7.preference.PreferenceScreen>
</android.support.v7.preference.PreferenceScreen>
我还缺少什么 这似乎是上述首选项设计库中未解决的问题 对于链接中提到的这个问题,有一些难看的解决方法,但我个人将坚持使用旧的android.preference.PreferenceFragment,直到这个问题得到解决,因为我的首选屏幕依赖于子屏幕
编辑:是此问题的另一种解决方案。尝试在
添加首选项后的onCreatePreferences
函数中添加您的首选项。它仍然不起作用。
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.preferences);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PreferenceScreen preferenceScreen = (PreferenceScreen) getPreferenceScreen().findPreference("pref_key_r");
Preference preference = new Preference(preferenceScreen.getContext());
preference.setKey("pref_key_sp");
preference.setTitle(R.string.sp);
preferenceScreen.addPreference(preference);
}