Java 如何将数据从MainActivity传递到多个Activity

Java 如何将数据从MainActivity传递到多个Activity,java,android,android-studio,android-intent,Java,Android,Android Studio,Android Intent,我的项目看起来像这样: 主要活动 选择活动 地图活动 我有关于我的MainActivity的数据需要发送到MapActivity,问题是如果我没有从SelectActivity中选择项目,我就无法直接进入MapActivity 我在做以下工作: Intent intent = new Intent(MainActivity.this, MapSelectActivity.class); Bundle b = new Bundle(); b.putDouble("Lon",

我的项目看起来像这样:

  • 主要活动
  • 选择活动
  • 地图活动
  • 我有关于我的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中选择内容,我就无法进入活动

    我该怎么做呢?。 我希望我已经说清楚了。
    感谢您在advace中的帮助。

    当您从
    main活动
    导航到
    SelectActivity
    ,然后从
    SelectActivity
    导航到
    MapActivity

    如果要将数据从
    MainActivity
    发送到
    MapActivity
    ,则可以分两个阶段发送此数据:

    • 第1阶段:
      main活动
      SelectActivity
    • 第二阶段:
      SelectActivity
      MapActivity
    在主要活动中:

    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);
    
    在选择活动中:

    // 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);
    
    在MapActivity中:

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

    我没有数据库,我只想发送两个double,它会正常工作吗?您希望如何在这三个活动之间导航?是从MainActivity到SelectActivity,然后从SelectActivity到MapActivity,对吗?是的,这就是我导航的方式。谢谢你的回答,现在我有一个问题,如果我让应用程序chrash。@AlejandroSantamaría如果问题与同一个问题相关,你能用崩溃报告更新问题吗。或者你可以用它来打开一个新的问题,使每个问题都有一定的问题范围。@AlejandroSantamaría如果你觉得这样有帮助,请接受这个答案,这将有助于让人们在将来有同样的问题。