2012-04-11 70 views
2

我正在开发一个应用程序,其中我使用了多个Activity下的Tab Activity。我使用this Tutorial如何在组标签下的组活动下为活动启动活动?

我想从下一个Activity得到结果。我该怎么做。我无法找到它。我已经阅读了两个或三个示例,如thisthis。但我无法了解如何获得结果。我也试过

View view = getLocalActivityManager().startActivityForResult("Search", 
new Intent(this, WhatMenu.class). 
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();  
But it only Supports `startActivity()` 

。任何帮助将是可以理解的。
在此先感谢

+0

任何建议将被赞赏 – Nitin 2012-04-11 09:51:40

+1

不使用'ActivityGroup'它的弃用,而是使用'Fragment'。 – 2012-04-11 11:17:06

+0

@ Lalit Poptani你能给我一个简单的例子我怎样才能使用片段。 – Nitin 2012-04-11 12:12:28

回答

3

提取数据,我已经通过ViewFlipper感谢每一个机构的帮助解决了这个问题。

1

您还需要传递请求代码以使用startActivityForResult()。如果您不知道它是什么,只需传递0.
startActivity()startActivityForResult()的语法是不同的。

+0

先生我已经尝试过,但没有方法getLocalActivityManager()。startActivityForResult(i,29);如果我从组Activity中尝试它,它会隐藏我不想要的标签 – Nitin 2012-04-11 09:56:31

+0

ahh .. ** LocalActivityManager **中没有结果的方法。我可否知道目的,以便我们可以考虑其他选择。 – noob 2012-04-11 10:02:05

+0

先生,我只是想从下一个活动获取一些数据到上一个并通知列表; – Nitin 2012-04-11 10:06:47

0

活动1
创建一个用于参考的类变量。

private final int REQUEST_CODE = 0; 

... 
//Somewhere in your code you have to call startActivityForResult 
Intent intent = new Intent(Activity1.this, Activity2.class); 
startActivityForResult(intent); 


活动2

结束活性2之前,你必须设置结果确定,将您希望带回活性1 likeso

Intent data = new Intent(); 
data.putExtra("name", "Mark"); 
data.putExtra("number", 1); 
data.putExtra("areYouHappy", true); 

setResult(RESULT_OK, data); 
finish(); //closes Activity2 and goes back to Activity1 


数据现在回到Activity1,您应该重写onActivityResult方法并从Activity2中检索值。
您首先检查Activity2的结果是否正确,然后检查通过的参考REQUEST_CODE。由于之前我们创建了private final int REQUEST_CODE = 0,因此我们检查requestCode是否等于变量REQUEST_CODE。如果再从活动2.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if(resultCode==RESULT_OK) { 
     if(requestCode==REQUEST_CODE) { 
      if(data.getExtras()!=null) { 
       String name = data.getStringExtra("name"); 
       int number = data.getIntExtra("number",0); //2nd parameter is the default value in case "number" does not exist 
       boolean areYouHappy = data.getBooleanExtra("areYouHappy", false); //2nd parameter is the default value in case "areYouHappy" does not exist 
      } 
     } 
    } 
} 
+0

Java没有全局变量,并且使用private和final,使其不易访问,而不是全局变量。你的意思是说类变量或静态变量? – noob 2012-04-11 11:28:38

+0

感谢您的更正先生。 ^^ – 2012-04-11 12:57:38