我有 3 个 Activity ,第一个 Activity (主要)、中间 Activity 和最终 Activity 。目前,我通过 Intent 发送可序列化的数组列表。当我创建从第一个 Activity 中启动最终 Activity 的 Intent 时,这非常有效,尽管它会跳过需要显示的中间 Activity 。我遇到的问题是所有数据都源自第一个 Activity ,而我似乎无法将其从第一个 Activity 发送到最终 Activity ,并且仍然显示中间 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,但是当我这样做时,第一个 Activity 中 ArrayList 中的数据根本不会出现在 FinalActivity 中。有没有办法从 Middle Activity 启动 'finalIntent' 以便数据正确发送到 FinalActivity?
最佳答案
如果您尝试先显示 MiddleActivity,然后显示 FinalActivity,请尝试以下操作?
从 FirstActivity 与数组列表一起启动 MiddleActivity
在MiddleActivity的onCreate()中获取数组列表
从 MiddleActivity 以及步骤 2 中检索到的数组列表启动 FinalActivity
顺便说一句,您在问题中发布的代码是错误的。您应该将 bundle 附加到 intent
而不是 finalintent
关于java - Android:将 Extras (ArrayList) 发送到任何 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32726607/