我在活动之间传递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);
编辑:在第二个活动中,我获得了主要对象,但该对象包含一个对象的数组列表,缺少这些对象。
任何人都知道问题是什么?
答案 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