使用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);
分享到:
相关推荐
雨松MOMO带你做软件 Android软件开发之PreferenceActivity中组件的使用 ,欢迎大家下载阅读 哇咔咔~~
使用 PreferenceActivity设置个性信息, 参考:android 设置类PreferenceActivity http://blog.csdn.net/xiaobijia/article/details/41479235
android PreferenceActivity中的组件源码~
PreferenceActivity用法简介 Android X
android中PreferenceActivity详解
这个示例 PreferenceActivity 类的用法,它可以保存设置
NULL 博文链接:https://2528.iteye.com/blog/1049177
自定义PreferenceActivity,达到自己想要的ui效果
android 开发者指南 ,我们看到Android系统本身就大量...看出来了吧,Preference,对就是使用SharedPreferneces以键值对的形式进行保存的,当然,我们也可以通过SharedPreferences来获取PreferenceActivity设置的值。
该资源包含了一个android自定义的preferenceActivity简单易懂,喜欢的下载!
PreferenceActivity和ExpandableListActivity的使用,详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/77773001
仿IOS的PreferenceActivity界面,素材来自新浪微博,相关博文:http://www.cnblogs.com/tianzhijiexian/p/3893504.html
Android之PreferenceActivity简介,Android之PreferenceActivity简介
自定义PreferenceActivity的样式,相关博客:http://www.cnblogs.com/tianzhijiexian/p/3892506.html
NULL 博文链接:https://topmanopensource.iteye.com/blog/1291071
NULL 博文链接:https://zhanglimijavaeye.iteye.com/blog/965456
android之PreferenceActivity使用详解
配置数据使用 PreferenceActivity 的用户数据持久化。 使用 PreferenceActivty 类和 SharedPreferences 的用户数据持久性