2

我正在开发一个应用程序,其中我在 Tab Activity 下使用多个 Activity。我正在使用本教程

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

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

. 任何帮助都将是可观的。
提前致谢

4

3 回答 3

3

我已经通过ViewFlipper感谢大家的帮助解决了这个问题。

于 2012-05-13T12:01:53.293 回答
1

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

于 2012-04-11T09:52:33.043 回答
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);


活动二

在结束 Activity2 之前,您必须将结果设置为 OK 并将要带回 Activity1 的数据 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
            }
        }
    }
}
于 2012-04-11T11:15:26.600 回答