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"); |