2016-06-10 69 views
4

我是Android新手。 在我的应用程序我想要做这样的事情: 我有一个容器,我想动态添加项目到它,在一个项目可能有一些领域,所以树会是这样:如何将偏好动态添加到偏好设置屏幕并绑定其值?

main container 

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

我想要使​​用偏好来做到这一点,因为我需要在应用中存储用户的信息,但不知道如何。你能帮我吗?

回答

16

您需要创建一个空PreferenceScreen的XML文件:

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

</PreferenceScreen> 

然后在你的PreferenceFragment必须调用下面的方法在您onCreate(Bundle savedInstanceState) {...}

addPreferencesFromResource(R.xml.pref_empty); 

之后,您可以添加Preference就像这个:

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

当然,您可以在循环中添加首选项和类别以动态添加它们。

+1

接受为答案,如果这解决了问题。 – Talha