如何在3个活动之间传递数据(Android Studio)

How to passing data between 3 activities (Android Studio)

本问题已经有最佳答案,请猛点这里访问。

在此输入图像描述

看看上面的图片链接,如何在3个活动之间编写简单的传递数据?

活动1:

  • 输入名称

  • 然后单击插入按钮

  • 然后打算活动2

活动2:

  • 单击显示按钮

  • 然后打算活动3

活动3:

  • setText是Activity 1的输入名称

也许我应该使用setter getter? 但怎么样?

我需要这个来学习基础,谢谢:)


有很多方法,但这里有一个,

当您从活动A移动到活动B(可能是按钮单击)时,将inputName传递给B活动

ActivityA.java

1
2
3
Intent i = new Intent(this, ActivityB.class);
i.putExtra("DATA","inputName");
startActivity(i);

ActivityB.java没有对它做任何事情,但必须在ActivityC之前看到它。

因此,从A到B传递的信息需要检查并在从B移动到C时将其传递给C.

1
2
3
4
5
6
Intent newIntent = new Intent(ActivityB.this, ActivityC.class);
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
    newIntent.putExtras(bundle);
}
startActivity(newIntent);

在Activity C中,您可以获取这样的数据并使用

1
2
Bundle b = getIntent().getExtras();
String data1 = b.getString("DATA");

这是一个简单的解决方案,还有许多其他方法可以尝试

  • 存储在共享pref和检索中
  • 使用应用程序类
  • 使用一些界面等但在你的情况下这个简单的解决方案就足够了我猜

在Activity 1中:在插入按钮的单击侦听器上放置:

1
2
3
4
   Intent  i = new Intent(Activity1.this, Activity2.class);
   String name = input.gettext();
   i.putExtra("name",name);
   StartActivity(i);

上面的代码会将值从活动1传递给活动2,我假设你对android开发很新,请仔细阅读此链接以了解Intents和启动活动

现在在Activity2中从intent获取值

1
  String name=getIntent().getStringExtra("name");

name将具有从活动1传递的值;

现在遵循相同的模式,您可以将值从活动2传递到活动3


使用

1
 intent.putExtra("name","value");