How to dynamically add preferences into preferences screen and bind their values?

后端 未结 1 553
逝去的感伤
逝去的感伤 2021-02-14 17:59

I\'m new in Android. In my app i want to do something like this: I have a container and i want to add item dynamically to it, in one item there may be some fields, so tree woul

相关标签:
1条回答
  • 2021-02-14 18:57

    You need to create an xml file with an empty PreferenceScreen:

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

    Then in your PreferenceFragmentyou must call the following method in your onCreate(Bundle savedInstanceState) {...}

    addPreferencesFromResource(R.xml.pref_empty);
    

    Afterwards you can add Preferences like this:

    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);
    

    Of course you can add preferences and categories in a loop to add them dynamically.

    0 讨论(0)
提交回复
热议问题