【问题标题】:Zxing scan result on new Activity新 Activity 上的 Zxing 扫描结果
【发布时间】:2015-01-15 15:35:16
【问题描述】:

我已将 Zxing 3.0.1 作为库添加到我的项目中,我有 2 种布局:首先我有调用 Zxing 库的 CaptureActivity 的按钮,以及当 CaptureActivit y 解码条码,我需要将此代码放在第二个布局中,放入 textView。我怎样才能做到这一点?如果有人知道,请写分步手册,因为在和Android初学者,不知道要编码。

我必须在这部分代码中添加一些东西CaptureActivity

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (resultCode == RESULT_OK) {
  if (requestCode == HISTORY_REQUEST_CODE) {

    int itemNumber = intent.getIntExtra(Intents.History.ITEM_NUMBER, -1);
    if (itemNumber >= 0) {
      HistoryItem historyItem = historyManager.buildHistoryItem(itemNumber);
      decodeOrStoreSavedBitmap(null, historyItem.getResult());
    }
  }
}
}

【问题讨论】:

  • 您的问题不清楚。 2个布局是什么意思?您的意思是说 2 个活动,一个带有按钮,一个带有 textview?
  • 答案取决于您是想带着结果返回上一个活动,还是想带着结果开始一个新活动。

标签: android zxing scanning


【解决方案1】:

您必须使用 startActivityForResult 启动 CaptureActivity:

startActivityForResult(new Intent(this, CaptureActivity.class), CaptureActivity.REQUEST_CODE);

当 Zxing 完成解码时(在我的情况下,它会在 handleResult(Result rawResult) 回调中返回结果 - 您应该在 CaptureActivity 中调用 setResult(RESULT_OK, data)数据 - 是您解码的捆绑字符串并调用 finish():

@Override
public void handleResult(Result rawResult) {
    Bundle data = new Bundle();
    args.putString(RESULT_KEY, rawResult.getText());
    setResult(RESULT_OK, data);
    finish();
}

在启动 CaptureActivity 的 Activity 中,您必须覆盖 onActivityResult(int requestCode, int resultCode, Intent data) 回调并处理获取结果 - 在您的情况下 - 更新 TextView:

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
   if (requestCode == CaptureActivity.REQUEST_CODE && resultCode == RESULT_OK) {
       youtTextView.post(new Runnable() {
           @Override
           public void run() {
               yourTextView.setText(intent.getStringExtra(RESULT_KEY));
           }
       };
   }
}

【讨论】:

  • 在我的 MainActivity 上我添加了一个带有方法 onClick 的按钮(我用 startActivityForResult 启动 CaptureActivity)。我仍然不明白我必须在 CaptureActiviti 中放入什么代码,以及我需要在方法中的 MainActivity 中写什么onActivityResult
  • @Kirill,很快就会用我的应用程序中的代码更新我的答案。
  • 我不明白 CaptureActivity 的代码,zxing 在那里完成了解码?我必须把handkeResult放在哪里?
猜你喜欢
  • 1970-01-01
  • 2020-12-03
  • 2014-04-10
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多