本文共 1595 字,大约阅读时间需要 5 分钟。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | public class MainActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener { @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); //setContentView(R.layout.activity_main); addPreferencesFromResource(R.xml.mypreference); } @Override //暂停的时候撤销选项 protected void onPause() { super .onPause(); PreferenceManager.getDefaultSharedPreferences( this ).unregisterOnSharedPreferenceChangeListener( this ); } @Override //恢复的时候注册选项监听 protected void onResume() { super .onResume(); //两种方法,与注册所用方法效果一样 PreferenceManager.getDefaultSharedPreferences( this ).registerOnSharedPreferenceChangeListener( this ); } @Override //监听设置 public void onSharedPreferenceChanged(SharedPreferences sp, String key) { if (key.equals( "wifi_setting" )) { String bg_list = sp.getString( "wifi_setting" , "nolink" ); Log.e( "wifi_setting" , bg_list); } if (key.equals( "wifi_key" )) { boolean wifi_key = sp.getBoolean( "wifi_key" , false ); Log.e( "wifi_key" , wifi_key + "" ); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true ; } } |
注:
1.OnPreferenceChangeListener
Preference.OnPreferenceChangeListener 该监听器的一个重要方法如下:
boolean onPreferenceChange( preference, objValue)
说明: 当Preference的元素值发送改变时,触发该事件。
返回值:true 代表将新值写入sharedPreference文件中。
false 则不将新值写入sharedPreference文件