Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中的startActivityForResult(意图、请求代码)_Android_Android Intent - Fatal编程技术网

Android中的startActivityForResult(意图、请求代码)

Android中的startActivityForResult(意图、请求代码),android,android-intent,Android,Android Intent,我认为,我们添加请求代码作为参数,以确定哪个子活动(从父活动开始)返回结果 但我假设(可能是错误的ofc)在任何时间点,应用程序中只有一个活动可用…对吗 那么为什么我们需要第二个参数呢?在我看来,这是第二个只用来验证新活动是否成功完成的参数。因此,您想知道,例如,如果登录在第二个活动中成功,您可以传递错误代码或成功代码。但是,您不喜欢第二个参数使用此方法: void startActivity(Intent intent) 希望能有所帮助。在我看来,这是第二个唯一能验证新活动是否成功完成的方法

我认为,我们添加请求代码作为参数,以确定哪个子活动(从父活动开始)返回结果

但我假设(可能是错误的ofc)在任何时间点,应用程序中只有一个活动可用…对吗


那么为什么我们需要第二个参数呢?

在我看来,这是第二个只用来验证新活动是否成功完成的参数。因此,您想知道,例如,如果登录在第二个活动中成功,您可以传递错误代码或成功代码。但是,您不喜欢第二个参数使用此方法:

void startActivity(Intent intent)

希望能有所帮助。

在我看来,这是第二个唯一能验证新活动是否成功完成的方法。因此,您想知道,例如,如果登录在第二个活动中成功,您可以传递错误代码或成功代码。但是,您不喜欢第二个参数使用此方法:

void startActivity(Intent intent)

希望它能有所帮助。

您有一个活动A。从中您可以使用请求代码调用活动B。或者使用不同的请求代码c1调用活动C。因此,当您从B或C返回时,您通过请求代码知道从哪个位置返回

在B中,您做了一些事情并返回到A。有时您决定在B中所做的是“取消”,并对其进行标记,以便将结果代码设置为“取消”。其他时候,你决定你所做的是一种“按下OK”,所以你用结果代码OK来标记它。然后回到一个新的时代,你可以根据这些结果做任何你需要做的事情


您可以使用相同的请求代码调用活动B和C,但是您将无法区分返回到A的是哪一个。您有一个活动A。您可以使用请求代码调用活动B。或者使用不同的请求代码c1调用活动C。因此,当您从B或C返回时,您通过请求代码知道从哪个位置返回

在B中,您做了一些事情并返回到A。有时您决定在B中所做的是“取消”,并对其进行标记,以便将结果代码设置为“取消”。其他时候,你决定你所做的是一种“按下OK”,所以你用结果代码OK来标记它。然后回到一个新的时代,你可以根据这些结果做任何你需要做的事情

您可以使用相同的请求代码调用活动B和C,但您将无法区分返回到A的活动。

如中所述:

对于-
public void startActivityForResult(Intent-Intent,int-requestCode)

integer参数是标识请求的“请求代码”。 当您收到结果意图时,回调将提供相同的结果 请求代码,以便您的应用程序能够正确识别结果和 确定如何处理它

以身作则-

您希望启动允许用户选择联系人的活动,然后使用请求代码,如:

static final int PICK_CONTACT_REQUEST = 1;  // The request code
...
private void pickContact() {
    Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));
    pickContactIntent.setType(Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers
    startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
}
因此,当被调用的活动将结果返回给调用方活动时,调用方活动将 通过它将从被调用的活动接收的请求代码来识别结果。

如中所述:

对于-
public void startActivityForResult(Intent-Intent,int-requestCode)

integer参数是标识请求的“请求代码”。 当您收到结果意图时,回调将提供相同的结果 请求代码,以便您的应用程序能够正确识别结果和 确定如何处理它

以身作则-

您希望启动允许用户选择联系人的活动,然后使用请求代码,如:

static final int PICK_CONTACT_REQUEST = 1;  // The request code
...
private void pickContact() {
    Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));
    pickContactIntent.setType(Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers
    startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
}
因此,当被调用的活动将结果返回给调用方活动时,调用方活动将 通过它将从被调用的活动接收的请求代码来识别结果。

当我想要关闭许多打开的活动时,我通常使用“startActivityForResult(Intent,Requestcode)”。例如:

startActivityForResult(myIntent,0);
当您调用finish()时,它将只关闭当前活动,您将看到最后打开的活动 假设您打开了活动A,从A打开了B,然后是C,然后是D,假设在internet连接错误时,您必须关闭C和D并返回到活动B。u设置结果:

setResult(100);
在要结束的活动中(示例C),添加:

因此,在IOException中捕获时,您只需将结果设置为100并完成活动

希望它能帮助您:)

当我想关闭许多已打开的活动时,我通常使用“startActivityForResult(Intent,Requestcode)”。例如:

startActivityForResult(myIntent,0);
当您调用finish()时,它将只关闭当前活动,您将看到最后打开的活动 假设您打开了活动A,从A打开了B,然后是C,然后是D,假设在internet连接错误时,您必须关闭C和D并返回到活动B。u设置结果:

setResult(100);
在要结束的活动中(示例C),添加:

因此,在IOException中捕获时,您只需将结果设置为100并完成活动

希望它能帮助你:)