我有3项活动,第一活动(主要),中间活动和最终活动。目前,我通过Intent发送Serializable Arraylists。当我创建一个从First Activity中启动Final Activity的意图时,它的效果很好,尽管它会跳过需要显示的Middle Activity。我遇到的问题是所有数据都来自First Activity,而我似乎无法将其从First Activity发送到Final Activity,仍然显示Middle Activity。我想知道我是否应该尝试通过SharedPreferences发送Arraylists?
List<String> proStrings = new ArrayList<>();
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.SendButton:
Intent intent = new Intent(FirstActivity.this, MiddleActivity.class);
intent.putExtra("proGolferArray", String.valueOf(i));
//CREATE BUNDLE AND ADD ARRAYLIST AS SERIALIZABLE
Bundle bundle = new Bundle();
bundle.putSerializable("PROGOLFER", (Serializable) proStrings);
//START NEW INTENT WITH ARRAYLIST BUNDLE PASSED IN
intentFinal = new Intent(this, FinalActivity.class);
intentFinal.putExtra("KEY", bundle);
startActivity(intent);
//startActivity(intentFinal);
//this doesn't look right, I must be doing this wrong....
break;
}
}
}
从MiddleActivity,我启动FinalActivity,但是当我这样做时,First Activity中ArrayList的数据根本不会出现在FinalActivity中。有没有办法开始&#39; finalIntent&#39;来自中间活动,以便将数据正确发送到FinalActivity?
答案 0 :(得分:1)
如果您尝试显示MiddleActivity,然后尝试显示FinalActivity,请尝试以下操作?
从FirstActivity和arraylist
在MiddleActivity的onCreate()中获取arraylist
从MiddleActivity启动FinalActivity以及在步骤2中检索到的arraylist
顺便提一下,你在问题中发布的代码是错误的。您应该将捆绑包附加到intent
而不是finalintent