【问题标题】:how to directly pass value of a variable from 1st activty to 3rd activity using putextra?如何使用 putextra 将变量的值从第一个活动直接传递到第三个活动?
【发布时间】:2012-08-29 22:09:58
【问题描述】:
如何使用 putextra 将变量的值从第一个活动直接传递到第三个活动?
例如:
如果我点击按钮,我在第一个屏幕(第一个活动)中有一个变量 A,它将显示第二个屏幕。第二个屏幕(第二个活动)有一个按钮。如果我单击按钮,它将打开第三个屏幕(第三个活动),它将在第三个屏幕(第三个活动)的文本视图中显示变量 A。
如何将变量 A 的值从第一个屏幕直接传递到第三个屏幕(第三个活动)。 (1->3)
是否可以直接传递值?或者我应该先在第二个活动中传递它,然后再传递给第三个活动(1st->2nd->3rd)
【问题讨论】:
标签:
android
android-intent
【解决方案1】:
实际上不可能直接从第一个活动转到第三个...
您必须遵循活动堆栈..
因此,如果您希望将数据从第 1 次传递到第 3 次,请遵循
第 1 -> 第 2 -> 第 3
使用@Lalit Poptani 建议的意图
【解决方案2】:
您可以在任意两个活动之间传递任意值。你只需要做两件事:
-
在您的 FirstActivity 中:
Intent intent = new Intent(context, ThirdActivity.class);
i.putExtra("value_key", value); //valus is a String
startActivity(intent);
-
在您的 ThirdActivity 的onCreate():
Bundle b = getIntent().getExtras();
String value = (String) b.getString("value_key");
【解决方案3】:
您可以将它们保留为静态对象并以Myclass.myObject 检索。但你真正想要的是不可能的。
【解决方案4】:
您可以使用数据库、SharedPreferences、应用程序、静态方法等在 Activity 之间共享数据。看here