我的 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 语句起作用。否则两个语句都将被执行。 这是一种建议的方法还是有什么方法可以在不编辑包本身的情况下做到这一点?
最佳答案
当单击支付按钮时,您可以使用 bool 标志,如 isPayClicked,并在情况 1 的 onActivityResult 中检查此值:执行支付相关代码或相机相关代码。
声明:
private boolean isPayClicked;
支付按钮的点击方法/案例:
isPayClicked = true;
//start Payment Intent
onActivityResult:
@Override
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case 1:
if(isPayClicked){
isPayClicked = false;
//Perform payment related code
}else{
mImagePicker.handleActivityResult(requestCode, resultCode, data);
}
break;
case 10:
mBraintreePackage.handleActivityResult(requestCode, resultCode, data);
break;
}
}
关于android - onActivityResult Android 的请求代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36399300/