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 preference,Object objValue)
说明: 当Preference的元素值发送改变时,触发该事件。
返回值:true 代表将新值写入sharedPreference文件中。
false 则不将新值写入sharedPreference文件