Android:将Extras(ArrayList)发送到任何Activity

时间:2015-09-22 20:47:47

标签: java android android-intent arraylist

我有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?

1 个答案:

答案 0 :(得分:1)

如果您尝试显示MiddleActivity,然后尝试显示FinalActivity,请尝试以下操作?

  1. 从FirstActivity和arraylist

  2. 启动MiddleActivity
  3. 在MiddleActivity的onCreate()中获取arraylist

  4. 从MiddleActivity启动FinalActivity以及在步骤2中检索到的arraylist

  5. 顺便提一下,你在问题中发布的代码是错误的。您应该将捆绑包附加到intent而不是finalintent