Anstatt eine PreferenceActivity
um Einstellungen direkt zu laden, verwenden Sie eine AppCompatActivity
oder ein gleichwertiges Programm, das eine PreferenceFragmentCompat
die Ihre Einstellungen lädt. Es ist Teil der Support-Bibliothek (jetzt Android Jetpack) und bietet Kompatibilität zurück zu API 14.
In Ihrem build.gradle
fügen Sie eine Abhängigkeit für die Bibliothek zur Unterstützung von Präferenzen hinzu:
dependencies {
// ...
implementation "androidx.preference:preference:1.0.0-alpha1"
}
Hinweis: Wir gehen davon aus, dass Sie Ihr Einstellungs-XML bereits erstellt haben.
Erstellen Sie für Ihre Aktivität eine neue Aktivitätsklasse. Wenn Sie Materialthemen verwenden, sollten Sie eine AppCompatActivity
aber Sie können dies flexibel handhaben:
public class MyPreferencesActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_preferences_activity)
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_container, MyPreferencesFragment())
.commitNow()
}
}
}
Jetzt kommt der wichtige Teil: Erstellen Sie ein Fragment, das Ihre Einstellungen aus XML lädt:
public class MyPreferencesFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.my_preferences_fragment); // Your preferences fragment
}
}
Weitere Informationen finden Sie in der Android Developers docs für PreferenceFragmentCompat
.