我的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,因为它是默认指示器。

08-18 16:26
查看更多