【问题标题】:ZXing QR Scan works in TabHost but not in ListViewZXing QR Scan 在 TabHost 中有效,但在 ListView 中无效
【发布时间】:2012-08-09 13:56:07
【问题描述】:

我有 2 种不同的布局

一个是 TabHost,它托管不同的选项卡,其中一个是 QR 扫描仪选项卡。如果我单击按钮,它会启动扫描应用程序并对其进行扫描并将其返回到活动并显示结果(我使用 StartActivityForResult()... 启动它)。 另一个 Layout 是 ListView,您可以在其中选择功能。如果您在此处选择 QR 扫描仪,则会打开活动。如果你点击扫描二维码,它会再次启动 ZXing,但如果有东西被扫描,它会退回到 Listview 布局。

这是我的活动在清单中声明的​​方式(ListView 布局):

<activity
        android:name=".ListActivities"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/app_name" >
</activity>

还有 TabHost:

<activity
        android:name=".TabHoster"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/app_name" >
</activity>

这是 ScanQR 类的 Manifest 条目:

<activity
        android:name=".QRScanner"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/app_name"
        android:launchMode="singleInstance" />

这是来自 ListActivities 的代码 -> ScanQR:

Intent intent = new Intent(this, ScanQR.class);
startActivity(intent);

这是启动 ZXing 库的代码:

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivityForResult(intent, 0);

以及从中返回结果的代码:

if (resultCode == RESULT_OK) {
       String contents = intent.getStringExtra("SCAN_RESULT");

       txtPleaseScan.setVisibility(View.GONE);

       ScrollView qrLayout = (ScrollView) findViewById(R.id.qrLayout);
       qrLayout.setVisibility(View.VISIBLE);

       txtQRResult.setText(contents);
  } else if (resultCode == RESULT_CANCELED) {
  }

顺便说一句,我对两种布局都使用相同的 ScanQR 码...

【问题讨论】:

  • 您说 Zxing 是在标签中工作的。我有一个疑问,您应该在哪里声明 onActivityResult() 方法。它在 tabgroupactivity 还是 subactivity 中?请帮助我
  • 在启动另一个 Activity 的 TabGroup 中,因为这是在 Subactivity 关闭后调用的方法...

标签: android android-listview android-tabhost zxing


【解决方案1】:

首先:您必须从ListActivity 开始活动startActivityForResult,但您从startActivity 开始。

第二:你还必须在 ListActivity 中实现onActivityResult

【讨论】:

  • 好的,谢谢。但为什么?我希望结果在 QRScan Activity 中,而不是在 ListActivity 中。
【解决方案2】:

哇,好的,我自己解决了...问题出在AndroidManifest.xml... android:launchModeandroid:configChanges 在那里我猜是错误的......删除它后,它在两种布局中都可以正常工作......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 2015-07-21
    • 2015-08-03
    • 2015-11-13
    • 2016-02-19
    • 2014-10-23
    相关资源
    最近更新 更多