Android 为结果启动活动

Android 为结果启动活动,android,android-activity,start-activity,Android,Android Activity,Start Activity,这可能是一个很难回答的问题,但我有些怀疑。我在谷歌上搜索了很多,但什么也没找到。 在为结果启动活动时,我们传递请求代码,并在结果上使用相同的请求代码和结果代码进行检查。我想知道是否有一种方法可以实现,通过使用请求代码执行不同的任务并从被调用的活动中获得不同的结果,也就是说,如果使用不同的请求代码多次调用相同的活动,那么它将返回不同的结果。请告诉我怎么做。我找不到一个switch语句或任何其他方法来实现这一点 我已经知道答案了,所以编辑这个。我想知道我是否可以使用这样的场景: Intent int

这可能是一个很难回答的问题,但我有些怀疑。我在谷歌上搜索了很多,但什么也没找到。 在为结果启动活动时,我们传递请求代码,并在结果上使用相同的请求代码和结果代码进行检查。我想知道是否有一种方法可以实现,通过使用请求代码执行不同的任务并从被调用的活动中获得不同的结果,也就是说,如果使用不同的请求代码多次调用相同的活动,那么它将返回不同的结果。请告诉我怎么做。我找不到一个switch语句或任何其他方法来实现这一点

我已经知道答案了,所以编辑这个。我想知道我是否可以使用这样的场景:

Intent intent = new Intent(this, yourClass.class); 
intent.putExtras(b);
if(condition1)
startActivityForResult(intent, 1);
else
startActivityForResult(intent, 2);
我调用的活动返回请求代码1和2的两个不同结果,因此我可以

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    //could replace it with a switch
    if (requestCode == 1){
        //condition 1
            }
        else if(requestCode == 2){
          //condition2
        }
}
i、 e使用不同的请求代码调用相同的活动,以从相同的活动中获得不同的结果

谢谢


我真的不知道您想要做什么,但我知道您可以将您想要的任何代码返回到第一个活动。
例如,假设您有一个活动A,对活动B调用
startActivityForResult()
,然后B执行它所做的任何操作,然后返回一个
resultCode
,即
resultCode
可以是您想要的任何内容,例如7、8、9。。。。不管怎样。
然后,如果希望活动执行特定的操作,还可以使用自定义请求代码启动它,这样在调用onActivityResult()时,可以检查活动是否返回所需的内容。

为此,我鼓励您使用静态整数值,如
RESULT\u 1
RESULT\u 2


注意:如果要从第一个要调用的活动返回
onActivityResult()
,则必须返回正值。然后只需使用开关来处理不同的
resultCode
值。

发布的问题对我来说不是很清楚,您可以始终在onActivityResult方法中切换activityForResult并检查ActivityResult检查不同的请求代码。下面是一个代码演示,说明如何执行此操作:

使用以下命令切换活动:

Intent intent = new Intent(this, yourClass.class); 
intent.putExtras(b);    // here
startActivityForResult(intent, 2); //put your code along : positive integer
检查此方法中的结果

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    //could replace it with a switch
    if (requestCode == 1){
        //put your code here
            }
}
被调用的活动不需要知道您的请求代码,但是,如果您想做类似的事情,您可以通过在意向中传递请求代码来做到这一点,如下所示:

intent.putExtra("requestCode", requestCode); 

因此,访问您切换到的activity类中的intent变量。

您可能希望对原始帖子进行编辑。。这将使事情更加清晰是的,当然您可以这样做,根据您的需求,您可以使用不同的请求代码启动TactivityForresult,并在OnActivityResult中检查它们,反之亦然。我对如何在调用的活动中实现这一点有疑问。您能否举例说明如何基于被调用活动中的请求代码执行此操作。根据被调用活动中的请求代码,我应该如何在不同的条件下使用setResult()。为了更好地理解
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    //could replace it with a switch
    if (requestCode == 1){
        //put your code here
            }
}
intent.putExtra("requestCode", requestCode);