我想知道我是否正确理解requestCode的概念.这个整数是什么,并且我设置它的整数是否重要:
private static int CAMERA_REQUEST = ???;
Run Code Online (Sandbox Code Playgroud)
谢谢
bib*_*tha 69
requestCode可帮助您识别您回来的Intent.例如,假设您的活动A(主要活动)可以调用活动B(摄像机请求),活动C(音频录制),活动D(选择联系人).
每当随后调用的活动B,C或D完成并需要将数据传回A时,现在您需要在onActivityResult中识别要从哪个Activity返回并相应地处理您的处理逻辑.
public static final int CAMERA_REQUEST = 1;
public static final int CONTACT_VIEW = 2;
@Override
public void onCreate(Bundle savedState)
{
super.onCreate(savedState);
// For CameraRequest you would most likely do
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
// For ContactReqeuest you would most likely do
Intent contactIntent = new Intent(ACTION_VIEW, Uri.parse("content://contacts/people/1"));
startActivityForResult(contactIntent, CONTACT_VIEW);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == Activity.RESULT_CANCELED) {
// code to handle cancelled state
}
else if (requestCode == CAMERA_REQUEST) {
// code to handle data from CAMERA_REQUEST
}
else if (requestCode == CONTACT_VIEW) {
// code to handle data from CONTACT_VIEW
}
}
我希望这澄清了参数的使用.
public void onActivityResult(int requestCode, int resultCode, Intent data)
Run Code Online (Sandbox Code Playgroud)
app
intents
仅通过上述方法接收来自不同的结果.那么您如何理解哪些意图回复了您?出于这个原因,在调用意图之前,我们放置了一个自定义的TAG/Label,它被调用requestCode
.通过我们自己定义的,requestCODE
我们可以检查我们收到的意图结果.
在requestCode
示例中,我为Camera Intent提供了1001.您可以输入任何所需的号码.1200或2001或21.任何正整数范围为~2 ^ 16.
见附图.
归档时间: |
|
查看次数: |
54897 次 |
最近记录: |