我正在我的第一个 Activity 中创建一个名为“AppEngine”的对象。此 AppEngine 对象存储事件的数组列表,并以其中的 2 个事件开始。
从第一个 Activity 中,我单击一个按钮,该按钮会将我带到第二个 Activity,在其中我使用以下方法将事件对象添加到 arrayList。
appEngine.getList.add(new Event)
在 Activity 2 中,如果我要调用 appEngine.getList.size()
,大小将正确返回为 3,并且我可以看到额外的事件。
当我切换回 Activity 2 时,我正在调用 appEngine.getList.size()
,但它只返回 2,并且额外的事件不在那里。我怎样才能更新appEngine对象?
最佳答案
将数组列表保存在共享首选项中,如下创建 AppPreference 类:-
public class AppPreference {
private static SharedPreferences mPrefs;
private static SharedPreferences.Editor mPrefsEditor;
public static Set<AppEngine> getList(Context ctx) {
mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
return mPrefs.getStringSet("AppEngineList", null);
}
public static void setList(Context ctx, ArrayList<AppEngine> value) {
mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
mPrefsEditor = mPrefs.edit();
Set<String> set = new HashSet<>();
set.addAll(value);
mPrefsEditor.putStringSet("AppEngineList", set);
mPrefsEditor.commit();
}
}
从第一个 Activity 中设置您的值,如下所示:-
setList(YourActivity.class, list);
并从应用程序中的任何位置获取您的列表:-
ArrayLis<AppEngine> list = AppPreference.getList(yourActivity.class);
关于android - 从一个 Activity 更新存储在另一个 Activity 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55652957/