我願做一個正常的PreferenceActivity(舊風格,無頭),但與片段,並且不使用addPreferencesFromResource(id)
(因爲折舊)。
現在,我通過把這個在我onCreate
實現這一點:PreferenceActivity多PreferenceScreens無頭
getFragmentManager().beginTransaction().replace(android.R.id.content, new PreferencesFragment()).commit();
而且我PreferencesFragment
看起來是這樣的:
public static class PreferencesFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
很顯然,我還實施了isValidFragment
方法:
@Override
protected boolean isValidFragment(String fragmentName) {
return PreferencesFragment.class.getName().equals(fragmentName)
|| InnerFragment.class.getName().equals(fragmentName);
}
它工作得很好。然而,在內部具有PreferenceScreen
的時候有一個問題我preferences.xml
:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<!-- ... -->
<PreferenceScreen android:fragment="net.chaozspike.batterynotifier.SettingsActivity$InnerFragment"
android:summary="@string/settings_activity_prefs_display_night_mode_sum"
android:title="@string/settings_activity_prefs_display_night_mode" />
<!-- ... -->
</PreferenceScreen>
我有以下問題:新的優先級屏幕顯示在正常的頂部,我知道這可能是因爲我更換了默認R.id.content
。截圖:
但是我想不使用過時的東西或標題來解決這個問題。這有可能實現嗎?