多平台统一管理软件接口,如何实现多平台统一管理软件接口
405
2022-11-03
使用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);
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~