android - onActivityResult Android 的请求代码

标签 android react-native

我的 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/

相关文章:

javascript - react native :Disable Android Drawer

react-native - AsyncStorage 是永久的吗?

android - 在 native react 中打开联系人应用程序

video - 如何使用 react-native-camera 录制视频

android - ArrayAdapter 数据集中的元素数为零

java - Gradle 同步失败 : For input string: "+"

ios - 模块 HMRClient 不是注册的可调用模块 (iOS)

Android - 如何使用线性布局放置按钮和微调器?

java - 我的按钮在 MainActivity.java 文件中找不到方法

安卓导航栏