Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将首选项动态添加到首选项屏幕并绑定其值?_Android_Preferences - Fatal编程技术网

Android 如何将首选项动态添加到首选项屏幕并绑定其值?

Android 如何将首选项动态添加到首选项屏幕并绑定其值?,android,preferences,Android,Preferences,我是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 Prefere

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

我想使用首选项来实现这一点,因为我需要在应用程序中存储用户信息,但不知道如何实现。你能帮帮我吗

您需要创建一个带有空
首选项屏幕的xml文件

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

</PreferenceScreen>
之后,您可以添加
首选项
s,如下所示:

main container

- item 1
   --field 1
   --field 2
   ...
   --field n
 - item 2
   --field 1
   --filed 2
.......
 - item n
   --field 1
   --field 2
   ...
   field n
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);

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

在将任何首选项添加到类别之前,将任何首选项类别添加到首选项屏幕非常重要,否则您将得到一个空指针