在我的 Android APP 中,每当我需要从同一个 Activity 调用许多不同的 ActivitiesForResult 时,我会这样做:
public void firstMethod() {
int requestCode = 1;
Intent intent = new Intent(SomeCode1.class);
startActivityForResult(intent,requestCode);
}
public void secondMethod() {
int requestCode = 2;
Intent intent = new Intent(SomeCode2.class);
startActivityForResult(intent,requestCode);
}
为了知道它来自哪个 Intent ,我这样识别它们:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1: {
// some code
} case 2: {
// some code
}
}
我试图从同一个 Activity 中两次调用 ZXING 条形码扫描器,但我不知道如何使用它设置请求代码。
IntentIntegrator intentintegrator= new IntentIntegrator(this);
IntentIntegrator.initiateScan(ZxingIntent.QR_CODE_TYPES);
有人知道怎么实现吗?我需要修改 IntentIntegrator 代码吗?
最佳答案
我看到了 2 个解决方案。一个是创建一个新 Activity ,只是为了调用 IntentIntegrator 并将 requestCode 放入这个新 Activity 。
第二个选项是修改 IntentIntegrator - 这就是我所做的。
我删除了最终属性,
// public static final int REQUEST_CODE = 0x0000c0de;
public static int REQUEST_CODE = 0x0000c0de;
增加了设置请求码的功能:
public void setRequestCode(int requestCode) {
REQUEST_CODE = requestCode;
}
我这样调用条码扫描器:
int requestCode = 2;
IntentIntegrator intentintegrator= new IntentIntegrator (this);
intentintegrator.setRequestCode(requestCode);
intentintegrator.initiateScan(ZxingIntent.QR_CODE_TYPES);
我不知道 RequestCode 0x0000c0de 的用途以及为什么它是最终的,但该应用程序似乎可以正常工作。
关于android - ZXING Intent 请求码(识别我的 Intent ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25629677/