【问题标题】:How to pass data from MainActivity to multiple activities如何将数据从 MainActivity 传递到多个活动
【发布时间】:2020-05-02 00:27:35
【问题描述】:

我的项目看起来像这样:

  1. 主要活动
  2. 选择活动
  3. 地图活动

我的 MainActivity 上有需要发送到 MapActivity 的数据,问题是如果没有从我的 SelectActivity 中选择一个项目,我无法直接进入 MapActivity。

我正在做以下事情:

    Intent intent = new Intent(MainActivity.this, MapSelectActivity.class);
    Bundle b = new Bundle();
    b.putDouble("Lon",longitude);
    b.putDouble("Lat",latitude);
    intent.putExtras(b);
    startActivity(intent);

但是应用程序刚刚开始崩溃,因为我之前提到过,如果没有从 SelectActivity 中选择某些内容,我就无法进入活动。

关于如何制作这个的任何想法? 我希望我已经说清楚了。 提前感谢您的帮助。

【问题讨论】:

  • 我没有数据库,我只想发送两个double,它可以工作吗?
  • 您想如何在三个活动之间导航?是从 MainActivity 到 SelectActivity 再从 SelectActivity 到 MapActivity 对吗?
  • 是的,我就是这样导航的。

标签: java android android-studio android-intent


【解决方案1】:

当您从MainActivity 导航到SelectActivity,然后从SelectActivity 导航到MapActivity

而你想将数据从MainActivity发送到MapActivity,那么你可以分两个阶段发送这个数据:

  • 第一阶段:从MainActivitySelectActivity
  • 第二阶段:从SelectActivityMapActivity

在 MainActivity 中:

Intent intent = new Intent(MainActivity.this, SelectActivity.class);
Bundle b = new Bundle();
b.putDouble("Lon",longitude);
b.putDouble("Lat",latitude);
intent.putExtras(b);
startActivity(intent);

在 SelectActivity 中:

// get the bundle sent from MainActivity to SelectActivity
Bundle b = getIntent().getExtras();
Intent intent = new Intent(SelectActivity.this, MapActivity.class);

// add more data to bundle from the SelectActivity
// b.addXX();

intent.putExtras(b);
startActivity(intent);

在地图活动中:

// get the bundle sent from SelectActivity to MapActivity
Bundle b = getIntent().getExtras();
b.getDouble("Lon");
b.getDouble("Lat");

【讨论】:

  • 感谢您的回答,现在我有一个问题,如果我让应用程序崩溃。
  • @AlejandroSantamaría 如果它与同一个问题相关,您能否使用崩溃报告更新问题。或者您可以打开一个新问题,以保持每个问题都有一定的问题范围。
  • @AlejandroSantamaría 如果您觉得这种方式有帮助,请接受答案,这将有助于将来有相同问题的人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
  • 2019-10-08
  • 1970-01-01
  • 2021-08-12
  • 2019-06-14
相关资源
最近更新 更多