我的MainActivity.java
中有此代码段
@Override
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case 1:
mImagePicker.handleActivityResult(requestCode, resultCode, data);
break;
case 10:
mBraintreePackage.handleActivityResult(requestCode, resultCode, data);
break;
}
}
基本上,这两个软件包(我使用react-native)都使用相同的
包中的
requestCode
。// ImagePicker
static final int REQUEST_LAUNCH_CAMERA = 1;
// Braintree Android
private static final int PAYMENT_REQUEST = 1;
因此,我必须编辑其中任一选项才能使该switch语句起作用。否则,两个语句都将被执行。
是一种建议的方法,还是没有编辑包本身的任何方法?
最佳答案
在您的数据意图中添加一个值。然后检查那里有什么样的数据。像这样:
if (data.getIntExtra(WHAT_REQUEST, -1) == 1){
//do camera stuff
} else {
//do payment
}
但是,这是一个不好的方法。您必须以某种方式覆盖requestcode,因为它是默认指示器。