所以我有两个活动:主要包含所有数据,次要包含首选项。主活动中有两个数组,我想要从Preferences活动访问并使用这两个数组。实际上,我需要将数组中的所有数据重置为默认值。有没有办法做到这一点?
我尝试使用SharedPreferences,因为我将所有这些数据存储在其中。我在Preferences活动中更改了它的值,但主要活动中的数据没有改变,我猜,因为它没有重新启动,只是暂停了。
答案 0 :(得分:2)
您可以使用SharedPreferences和register a OnSharedPreferenceChangeListener和/或更新活动的onResume()
方法中的数据。
以下是一些基本示例:
public class MainActivity extends Activity implements OnSharedPreferenceChangeListener {
private SharedPreferences prefs;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// get your SharedPreferences objects
prefs = ...;
}
// This method will be called every time your activty comes to the front
@Override
protected void onResume() {
super.onResume();
// register a listener to get notified when the preferences change
prefs.registerOnSharedPreferenceChangeListener(this);
// do whatever you need to do to update the data
updateData();
}
@Override
protected void onPause() {
super.onPause();
// unregister listener if another activity comes to the front to save battery
prefs.unregisterOnSharedPreferenceChangeListener(this);
}
// this method will be called when some preference changes
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
// do whatever you need to do to update the data
updateData();
}
}