使用PreferenceActivity时,如何获取ListPreference中选中的值
ListPreference中根本就没有什么回调函数可以用
于是,向上一层,把注意力集中于SharedPreferences,
发现有这么个接口:onSharedPreferenceChanged
抱着试试看的态度,实现了该接口,发现此方法可行,先将部分代码分享如下:
package yinger.firewall;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
public class CallFireWall extends PreferenceActivity implements
OnSharedPreferenceChangeListener {
ListPreference lp = null;
String whiteMode = "1";
String blackMode = "2";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
this.setTitle("Ying_er" + " Call Safe");
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);
lp = (ListPreference) findPreference(getString(R.string.pref_mode_key));
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
// TODO Auto-generated method stub
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
// TODO Auto-generated method stub
System.out.println("onSharedPreferenceChanged");
if (key == getString(R.string.pref_mode_key)){
System.out.println(lp.getValue());
if(lp.getValue().equals(whiteMode)){
}
}
}
}
注意:该事件需要注册。既:
prefs.registerOnSharedPreferenceChangeListener(this);
分享到:
相关推荐
本教程将深入探讨如何在Android应用中使用PreferenceActivity及其组件。 首先,让我们了解PreferenceActivity的基本概念。PreferenceActivity是Android SDK提供的一种特殊Activity类型,它专门用于展示和处理用户...
在Android开发中,为应用程序创建自定义设置界面时,开发者经常会用到PreferenceActivity。这篇博客将深入探讨PreferenceActivity的使用方法和相关知识点。 首先,PreferenceActivity是Android SDK提供的一个基类,...
为了在代码中使用PreferenceActivity,我们需要继承PreferenceActivity类,并在onCreate()方法中调用addPreferencesFromResource()方法,传入包含偏好设置的XML资源ID: ```java public class SettingsActivity ...
标题与描述均提及了《Android中PreferenceActivity详解》,这一主题涉及了Android开发中关于用户偏好设置的核心组件——PreferenceActivity的深入解析。以下是基于标题、描述、标签以及部分内容的关键知识点总结,...
使用 PreferenceActivity设置个性信息, 参考:android 设置类PreferenceActivity http://blog.csdn.net/xiaobijia/article/details/41479235
android PreferenceActivity中的组件源码~
它的使用方式与`PreferenceActivity`类似,但更易于在现代Android项目中集成。 总结一下,`PreferenceActivity`是Android中构建设置界面的便捷工具。通过XML定义偏好项,结合`addPreferencesFromResource()`加载,...
当用户在PreferenceActivity中进行设置更改时,这些更改会被自动保存到对应的SharedPreferences文件中,以便后续读取和使用。开发者可以通过SharedPreferences接口来读取和修改PreferenceActivity中的设置值。 创建...
在本教程中,我们将深入探讨`PreferenceActivity`的使用,包括如何创建、配置以及自定义。 ### 1. `PreferenceActivity`简介 `PreferenceActivity`是Android提供的一个基类,它继承自`Activity`,专门用来显示和...
描述中提到的博客链接(已省略)可能详细介绍了如何使用`PreferenceActivity`创建自定义设置页面的步骤和技巧。通常,这个过程包括以下几个关键步骤: 1. **创建Preference XML**:首先,你需要在项目的res/xml目录...
每个Preference都有一个键值对,键用于存储在SharedPreferences中,值则对应用户的选择。 3. **SharedPreferences**:SharedPreferences是Android中用来持久化轻量级数据的接口,通常用于保存应用的配置信息。当...
3. `ListPreference`的`entries`数组定义了显示在列表中的选项,而`entryValues`数组定义了与每个选项对应的值,这些值会在设置改变时被保存。 在老项目中回顾PreferenceActivity,意味着可能需要考虑兼容旧版本的...
在Android开发中,`PreferenceActivity`是用于创建用户设置界面的一种特殊类型的Activity。它使得开发者可以轻松地构建具有各种设置选项的界面,如开关、单选按钮、复选框等,而无需从头编写大量的XML和Java代码。...
PreferenceActivity用法简介 Android X
在Android开发中,`PreferenceActivity`是用于创建设置界面的标准组件。它允许开发者通过XML文件定义各种偏好选项,如开关、单选按钮、多选按钮等,并将它们以活动的形式展示给用户。然而,标准的`...
2. **加载XML布局**:在`PreferenceActivity`中,我们需要使用`addPreferencesFromResource(int resId)`方法来加载XML布局文件。`resId`参数是指向XML布局资源的ID。 3. **交互处理**:`Preference`类会自动处理...
由于其高度定制性和灵活性,PreferenceActivity在Android开发中被广泛应用。 #### 二、数据存储方式 PreferenceActivity中的数据存储主要依赖于 **SharedPreferences** ,这是一种轻量级的数据存储机制,适用于...
在Android开发中,PreferenceActivity是用于创建设置界面的标准组件,它允许开发者以XML方式定义用户界面,然后在活动中展示这些设置项。然而,系统默认的PreferenceActivity样式可能无法满足所有设计需求,这时我们...