在PreferenceActivity中添加自定义设置项,你需要遵循以下步骤:
- 创建一个新的XML文件,用于定义你的设置项。这个文件应该位于
res/xml/
目录下。例如,你可以创建一个名为preferences.xml
的文件。在这个文件中,使用
元素定义你的设置项。例如:
这里,我们定义了一个ListPreference
,它有两个数组资源:list_entries
和list_entry_values
,分别用于显示选项列表和存储用户选择的值。
- 在
res/values/arrays.xml
文件中,定义这两个数组资源。例如:
- Option 1
- Option 2
- Option 3
- 1
- 2
- 3
- 在你的
PreferenceActivity
中,加载并显示这个自定义设置项。例如:
public class SettingsActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } }
- 为了处理用户的选择,你需要重写
onResume()
和onPause()
方法,并在其中注册和注销SharedPreferences.OnSharedPreferenceChangeListener
。例如:
public class SettingsActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } @Override protected void onResume() { super.onResume(); getPreferenceScreen().getSharedPreferences() .registerOnSharedPreferenceChangeListener(this); } @Override protected void onPause() { super.onPause(); getPreferenceScreen().getSharedPreferences() .unregisterOnSharedPreferenceChangeListener(this); } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.equals("list_preference")) { // 处理用户选择的值 } } }
现在,当用户更改设置项时,onSharedPreferenceChanged()
方法将被调用,你可以在这里执行相应的操作。