Android:获取意图并将其重新路由到另一个类

时间:2011-09-29 06:35:36

标签: android android-intent

我的问题很简单:如果存在一个intent对象,我只想使用它并添加putExtra()然后再返回startActivity。但是,我不知道该怎么做。任何帮助表示赞赏。

Intent intent;
if(getIntent() != null) {
    intent = getIntent();
    //reroute to BarActivity class
} else {//this part is fine
    intent = new Intent(FooActivity.this, BarActivity.class);
}
intent.putExtra("cardHP", "100");
startActivity(intent);

2 个答案:

答案 0 :(得分:0)

getIntent()是更大链的一部分。它将返回已发送的ENTIRE意图。

您可以使用getIntent()。getExtras()。getString(“TheOriginatingClass”);

来检索调用类。

编辑:好的,上次我编辑这个...我太累了,需要在这之后去睡觉哈哈... 在发送的intent中,有一个原始类和被调用的类(Class1和Class2)。当您使用Class1发送的intent时,您实际上尝试使用调用Class2的相同意图调用Class1。你需要创建一个新的意图,如果你需要原始类(Class1),你可以通过我上面描述的链获得它。

注意:我忘了添加你需要将classname作为一个字符串添加到从Class1调用的intent中。 AFAIK没有直接的方法来找出调用类是什么。不过我可能错了。

-OR -

如果您使用的是int(就像您的示例中那样),您可以使用startActivityForResult(Intent,int) http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)

答案 1 :(得分:0)

如果我们使用startActivityForResult方法,并在onActivityResult方法上检测返回的结果,那么这就行了。