在活动之间丢失对象

时间:2014-03-27 11:00:50

标签: java android android-activity

我在活动之间传递Serializable对象,但似乎某种程度上我失去了一些。这是我的工作:

我从json解析对象,当我检查它们时一切都很好。解析后,我将它们传递给另一个活动:

 Intent intent = new Intent(Splash.this, Main.class);
 intent.putExtra(Constants.MAIN_ARR_OBJ, mainObjs);
 startActivity(intent);
 finish();

现在在我的第二个活动中,我把它们放在一个列表中,而onItemClick我希望通过这样做来发送对应于点击到另一个活动的位置的对象:

Intent intent = new Intent(Main.this, Second.class);
Log.v("--", mainObjects.get(position).getAddi_info().getTasks()
.size() + " TASKS SIZE IN MAIN toward second ");
intent.putExtra(Constants.ADDI_INFO_OBJ,
mainObjects.get(position).getAddi_info());
startActivity(intent);

正如您所看到的那样,我使用Log.v...进行检查,但这给我的大小为0 - 这意味着arrayList中没有对象。 在第二个活动中,我通过

获得额外内容
mainObjects = (ArrayList<MainScreenObject>) getIntent()
.getSerializableExtra(Constants.MAIN_ARR_OBJ);

编辑:在第二个活动中,我获得了主要对象,但该对象包含一个对象的数组列表,缺少这些对象。

任何人都知道问题是什么?

2 个答案:

答案 0 :(得分:0)

在您的第一项活动中:

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
                            intent.putExtra("login", jObj.getString(KEY_LOGIN));
                            intent.putExtra("mdp", jObj.getString(KEY_MDP));
                            intent.putExtra("prenom", jObj.getString(KEY_PRENOM));
                            intent.putExtra("nom", jObj.getString(KEY_NOM));
                            intent.putExtra("mail", jObj.getString(KEY_MAIL));
                            intent.putExtra("tel", jObj.getString(KEY_TEL));
                            startActivity(intent);

在你的第二项活动中:

Intent intent = getIntent();

          if (intent != null) {
              login = intent.getStringExtra("login");
              mdp = intent.getStringExtra("mdp");

              items.add(intent.getStringExtra("login"));
              items.add(intent.getStringExtra("prenom"));
              items.add(intent.getStringExtra("nom"));
              items.add(intent.getStringExtra("mail"));
              items.add(intent.getStringExtra("tel"));
           }

答案 1 :(得分:0)

问题在于,当我在for循环中读取json时,#39; ve正在重置第二个对象arraylist