2016-06-10 15 views
4

Ich bin neu in Android. In meiner app will ich so etwas wie dies tun: Ich habe einen Container, und ich will Element hinzufügen dynamisch es, in einem Punkt kann es einige Felder sein, so würde Baum so aussehen:Wie fügt man Präferenzen dynamisch in den Einstellungsbildschirm ein und bindet deren Werte?

main container 

- item 1 
    --field 1 
    --field 2 
    ... 
    --field n 
- item 2 
    --field 1 
    --filed 2 
....... 
- item n 
    --field 1 
    --field 2 
    ... 
    field n 

Ich möchte dies mit Voreinstellungen tun, weil ich Benutzerinformationen in der App speichern muss, weiß aber nicht wie. Kannst du mir bitte helfen?

Antwort

16

Sie benötigen eine XML-Datei mit einem leeren PreferenceScreen zu erstellen:

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 

</PreferenceScreen> 

Dann in Ihrem PreferenceFragment müssen Sie die folgende Methode in Ihrer onCreate(Bundle savedInstanceState) {...} rufen

addPreferencesFromResource(R.xml.pref_empty); 

Danach Sie wie Preference s hinzufügen dies:

PreferenceScreen preferenceScreen = this.getPreferenceScreen(); 

// create preferences manually 
PreferenceCategory preferenceCategory = new PreferenceCategory(preferenceScreen.getContext()); 
preferenceCategory.setTitle("yourTitle"); 
// do anything you want with the preferencecategory here 
preferenceScreen.addPreference(preferenceCategory); 

Preference preference = new Preference(preferenceScreen.getContext()); 
preference.setTitle("yourTitle"); 
// do anything you want with the preferencey here 
preferenceCategory.addPreference(preference); 

Natürlich können Sie Präferenzen und Kategorien in einer Schleife hinzufügen, um sie dynamisch hinzuzufügen.

+1

Als Antwort akzeptieren, wenn das Problem gelöst wurde. – Talha