【发布时间】:2011-08-07 15:14:07
【问题描述】:
当你即将开始一个新的活动,并且想要传递一个变量时,你通常这样做:
Intent intent = new Intent().setClass(this, NewActivity.class);
intent.putExtra("variable", variable);
startActivity(intent);
当您阅读额外内容时(在新活动中),您可以这样做:
Intent intent = getIntent();
if(intent != null)
{
variable = intent.getIntArrayExtra("variable");
}
现在,在我的应用程序中,我有一个加载屏幕,所有加载都在其中进行。这是在主要活动中进行的。在此过程中,许多变量正在更新/更改。我还有许多其他活动,我需要将这些新更新的变量传递给其中一些活动。问题是这些活动不是由我的主要活动开始的。
有什么方法可以在我的主要活动中做到这一点:
Intent newIntent1 = new Intent().setClass(MainActivity.this, NewActivity1.class);
newIntent1.putExtra("var1", var1);
然后使用另一个活动中的startActivity(newIntent1); 开始活动?
我曾尝试像这样阅读额外内容:
Intent intent;
try
{
intent = Intent.parseUri("content://com.mycompany.android.MainActivity", 0);
if(intent != null)
{
var1 = intent.getIntArrayExtra("var1");
}
}
catch (URISyntaxException e)
{
e.printStackTrace();
}
这不起作用,var1 变量为空(这样初始化)。
说实话,我不知道该怎么做,也不知道Intent.parseUri 是如何工作的。对于像我这样的初学者来说,这方面的文档真的很糟糕。
【问题讨论】:
-
在您开始的意图中,您是否试图从意图中读取值?创建? onNewIntent?
-
@Brandon Haugen:我正在尝试在 onCreate 方法中阅读它。
-
你说activity不是你的mainactivity启动的,那么是谁启动的呢?关键是,如果这不是第一次启动活动,请尝试读取活动的 onNewIntent 方法中的值,而不是 onCreate
标签: android android-activity android-intent extra