Android ZXing条形码扫描仪在ActivityGroup内失败
我创建了一个小的tabActivity应用程序,并且喜欢运行zxing并显示结果,而不用使用ActivityGroup更改选项卡。 没有ActivityGroup,一切正常 这是我的扫描活动的一些代码。如果我“启用”activityGroup,我将永远不会遇到onActivityResult…:Android ZXing条形码扫描仪在ActivityGroup内失败,android,tabactivity,zxing,activitygroup,Android,Tabactivity,Zxing,Activitygroup,我创建了一个小的tabActivity应用程序,并且喜欢运行zxing并显示结果,而不用使用ActivityGroup更改选项卡。 没有ActivityGroup,一切正常 这是我的扫描活动的一些代码。如果我“启用”activityGroup,我将永远不会遇到onActivityResult…: class ScanButtonClickListener implements OnClickListener { @Override public void on
class ScanButtonClickListener implements OnClickListener {
@Override
public void onClick(View v) {
IntentIntegrator.initiateScan(BarcodeActivity.this);
}
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanResult =
IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
Log.v("barcode", scanResult.getContents().toString());
}
以下是清单的部分内容:
activity android:name=".barcode.BarcodeActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:screenOrientation="portrait">
</activity>
<activity android:name=".tabGroups.BarcodeTabGroupActivity"></activity>
和过滤日志:
08-04 15:59:02.093:调试/解码处理程序(4477):在1毫秒内找到条形码08-04 15:59:02.144:调试/捕获活动处理程序(4477):获取解码成功消息
08-04 15:59:03.792:调试/捕获活动处理程序(4477):获取返回扫描结果消息
android::CameraHardwareSec::StopReview():预览未运行,什么也不做
08-04 15:59:03.941:INFO/WindowManager(109):将旋转设置为0,animFlags=1
08-04 15:59:03.957:INFO/ActivityManager(109):配置已更改:{scale=1.0 imsi=0/0 loc=ENU US touch=3键=1/1/2导航=1/1方位=1布局=34 uiMode=17 seq=72} 我想一定是活动经理的原因。。一旦zxing结束,它将返回显示按钮且无结果
有什么建议吗?提前感谢 好的,我自己解决了这个问题。 对于所有对我的解决方案感兴趣的人,这里是: 我没有对子活动“BarcodeActivity”启动扫描,而是将其引用到父活动:
class ScanButtonClickListener implements OnClickListener {
@Override
public void onClick(View v) {
//get the parent activity
TabGroupActivity parentActivity = (TabGroupActivity) getParent();
IntentIntegrator.initiateScan(parentActivity);
}
}
现在可以通过父BarcodeTabGroupActivity中的onActivityResult访问结果:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
Log.v("barcode_tabgroup", scanResult.getContents().toString());
}
在这个onActivityResult中,我现在可以开始下一个childActivity来处理扫描结果。。。我不知道这是否是一个好的做法,但它是有效的
我想我必须使用
BarcodeActivity childActivity = (BarcodeActivity) getCurrentActivity();
childActivity.finish();
但它会击落一切
BarcodeActivity childActivity = (BarcodeActivity) getCurrentActivity();
childActivity.finish();