我有这样的喜好:
settings.xml中:
设置活动
public class SettingsActivity extends PreferenceActivity { @SuppressWarnings("deprecation") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings); } }
现在我需要在设置或取消设置复选框时调用我的MAINActivity中的方法.这可能吗?
谢谢
添加OnSharedPreferenceChangeListener
到您的活动:
import android.content.SharedPreferences.OnSharedPreferenceChangeListener; ... public class MAINActivity extends Activity { private OnSharedPreferenceChangeListener listener = new OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { if (key.equals("setSmsSend") { smsSendPrefChanged(); // the function you want called } } }; @Override protected void onCreate() { super.onCreate(); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); prefs.registerOnSharedPreferenceChangeListener(listener); ... } @Override protected void onDestroy() { super.onDestroy(); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); prefs.unregisterOnSharedPreferenceChangeListener(listener); ... } ... }