android - 从一个 Activity 更新存储在另一个 Activity 中的对象

标签 android android-activity

我正在我的第一个 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/

相关文章:

android - 实现细粒度启用/禁用推送通知

android - 打开“编辑”对话框并旋转设备时,应用崩溃

带操作栏的 Android 全屏 Activity

java - 使用 EditText 进行计算

android - 如何在android中正确关闭光标

android - 在eclipse中重命名Android项目的包和版本名称

java - XML 字符串资源与 Java 常量字符串?

java - 使用标志 Intent.FLAG_ACTIVITY_NEW_TASK 从 onPostExecute() 方法启动 Intent 不起作用

android - 在 Activity 之间传递未序列化的对象

android - AVD - PANIC : Could not open. .. - 不是路径问题