Android的onActivityResult的requestCode

钦隆

我的代码段中有 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语句起作用。否则,这两个语句都将被执行。是一种建议的方法,还是没有编辑包本身的任何方法?

nutella_eater

在您的数据意图中添加一个值。然后检查那里有什么样的数据。像这样的东西:

if (data.getIntExtra(WHAT_REQUEST, -1) == 1){
            //do camera stuff
} else {
            //do payment
}

但是,这是一个不好的方法。您必须以某种方式覆盖requestcode,因为它是默认指示器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章