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

时间: 2024-08-03 14:02:21

使用PreferenceActivity时,如何获取ListPreference中选中的值的相关文章

怎么获取页面中选中的值

问题描述 $("#selAutoSerialDiv").selAutoBrandSerial({brandCompIdName:'autoBrandComp',brandCompSn:-1,autoBrandIdName:'autoBrand',autoBrandSn:-1});//初始化区域选择下拉列表$("#selPositionDiv").selCountryPosition({countryIdName:'country',countrySn:'086',p

JavaScript中获取Radio被选中的值_表单特效

原理就是:一般使用遍历的方法,判断每个Radio是否被选中,如果是,再取其值. <form id="userlist" method="post" action="option.php"> <input type="radio" name="userid" value="1">1 <input type="radio" name=&quo

winform chart控件,通过什么事件能获取chart中选中区域的值?如图

问题描述 如图阴影区域是我选中的区域,想获取区域中point的值,用啥事件? 解决方案 本帖最后由 hellomahao 于 2015-09-24 12:41:23 编辑解决方案二:大家对chart控件使用的较少么?平时出图表都用第三方?发chart疑问的贴都没人回答..自己研究出来了,通过调用Chart的SelectionRangeChanged可以得到选区范围内的数值.我要做的是展示一系列数据,并提供给用户自己分析异常数据,通过选取一定范围内的异常数值显示相关数据.自己给自己结贴了..解决方

js中怎么获取jsp中隐藏的值

问题描述 js中怎么获取jsp中隐藏的值 控制类: @RequestMapping(value = "/pageforward") public ModelAndView pageforward(String page, String cdbh, final ModelMap model) { //设置菜单编号 model.addAttribute("CDBH", cdbh); return new ModelAndView(page, model); // pag

c#FORM2窗口获取FORM1中TextBox1的值

问题描述 c#FORM2窗口如何获取FORM1中TextBox1的值? 解决方案 解决方案二:可以在构造窗体对象时传进去解决方案三:具体做法就是:1.在Form1中Form2fm=newForm2(TextBox1.text);fm.Show();2.在Form2中,(定义一个变量)重载构造函数privatestringxxx;publicForm2(stringstr){InitializeComponent();xxx=str;}

使用JavaScript获取Request中参数的值方法_javascript技巧

假设现在有一个URL,如下. http://www.jb51.net 如何通过JS访问到id和name里面的值呢,实现我们来分析一下思路. 先获取当前页面的URL,通过window.location.href. 提取该URL?后面的部分,通过slice()方法. 把获取到的Request对象分割成字符串数组,通过split() 方法. 接下来看代码. function getUrlVars() { var vars = [], hash; var hashes = window.location

jsp连sql server获取表中的某个值 并连接这个值的数据库

问题描述 jsp连sql server获取表中的某个值 并连接这个值的数据库 目前是连接到一个数据库A 根据A里的表判断登陆 但这个表里还有一个数据库B的连接字符串 类似这样 Server=192.27.94.10,11008;database=C_Model;user id=User;pwd=Pwd;Connect Timeout=30 怎么获取这个表内的字符串并连接到这个数据库B 解决方案 jsp连接sql server2005?(经测试连接成功)?? 接触Java或者JSP,难免会使用到数

16_Android生命周期再介绍,通过androidconfigChanges属性让界面旋转时不改变状态中保留的值

 A  android:configChanges属性 对android:configChanges属性,一般认为有以下几点: 1 不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次. 2 设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横.竖屏时只会执行一次. 3.设置Activity的android:config

运行时修改Web.config中的元素值 zhenyu(原作)

大家都知道Asp.Net提供了一个WebApplication的配置文件web.config,让我们可以很方便地设置Web应用程序,另外还可以在appSettings节中增加一些我们常要使用的单元,如数据库连接串等,利用System.Configuration.ConfigurationSetting类我们可以很容易读取这些单元的值,但是要改变这些值就需要一些技巧了,下面我就来告诉大家如何在运行时利用System.Management中的类去改变这些单元的值. 现假设您有一个WebApplica