如何使 ArrayList with model class data serializable in android between Activities?

How to make ArrayList with model class data serializable in android between Activities?

我在 ArrayList 中有一个数据集合,其中包含具有以下数据类型的可序列化模型:-

  1. 布尔值已检查
  2. 字符串名称
  3. 字符串详细信息

我想将这些数据从 First Activity 传递到 Second Activity 并使用带有适配器回调的 listView 适配器编辑 isChecked 的布尔状态。当我回到 First Activity 我想更新 Second Activity 的数据。

我能够在第二个 Activity 中传递数据并更新它,但无法在第一个 Activity 中获取更新的数据。怎么可能达到我的要求,非常感谢任何帮助谢谢

你必须在这里使用startActivityForResult。需要将您的模型数组列表再次传递回 activity 一个。

参考下面的代码实现你想要的。

How to pass data from 2nd activity to 1st activity when pressed back? - android

下面可以这样传

第一种方法

1) 将您的对象 class 实现为可序列化

public class Question implements Serializable

2) 将其放入您的来源 Activity

ArrayList<Question> mQuestionList = new ArrayList<Question>;
mQuestionsList = QuestionBank.getQuestions();
mQuestionList.add(new Question(ops1, choices1));

Intent intent = new Intent(SourceActivity.this, TargetActivity.class);
intent.putExtra("QuestionListExtra", mQuestionList);

3) 将其放入您的目标 Activity

ArrayList<Question> questions = new ArrayList<Question>();
questions = getIntent().getSerializableExtra("QuestionListExtra");

第二种方法

注意你的模特class必须implements Parcelable

List<Bird> birds = new ArrayList<Bird>();
//birds.add();
Intent intent = new Intent(Current.this, Transfer.class);
Bundle bundle = new Bundle();
bundle.putParcelableArrayList("Birds", birds);
intent.putExtras(bundle);
startActivity(intent);

这样接收

List<Bird> challenge = this.getIntent().getExtras().getParcelableArrayList("Birds");

考虑将其序列化为字符串,将其作为额外内容放入意图中,并在第二个 activity 中反序列化。