【问题标题】:Android: Send Extras (ArrayList) to any ActivityAndroid:向任何 Activity 发送 Extras (ArrayList)
【发布时间】:2015-09-23 08:18:56
【问题描述】:

我有 3 个活动,第一个活动(主要)、中间活动和最终活动。目前,我正在通过 Intent 发送可序列化的数组列表。当我创建一个从第一个活动中启动最终活动的意图时,这很有效,尽管它跳过了需要显示的中间活动。我遇到的问题是所有数据都来自第一个活动,我似乎无法将它从第一个活动发送到最终活动,并且仍然显示中间活动。我想知道是否应该尝试通过 SharedPreferences 发送 Arraylist?

 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 中。有没有办法从 Middle Activity 启动“finalIntent”,以便将数据正确发送到 FinalActivity?

【问题讨论】:

  • 那么你到底想达到什么目的?要不要先显示MiddleActivity,再显示finalActivity??
  • 是的,我似乎找不到最终访问我的数组列表的方法。我已经研究了几个小时,发现有一种方法可以通过共享首选项传递数组列表......但我仍在试图弄清楚如何实现它。 @乔尔敏

标签: java android android-intent arraylist


【解决方案1】:

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

  1. 从 FirstActivity 启动 MiddleActivity 以及数组列表

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

  3. 从 MiddleActivity 启动 FinalActivity 以及在步骤 2 中检索到的数组列表

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

【讨论】:

    猜你喜欢
    • 2015-05-10
    • 1970-01-01
    • 2011-12-31
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多