0

zxing ライブラリを使用して QR コードを読み取るアプリケーションを開発しています。QRコードを読み取るためのzxingライブラリを次のように呼び出しています。

public class QRScanner extends CaptureActivity {
    TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.qrscanner_layout);  
}

@Override 
public void handleDecode(Result rawResult, Bitmap barcode) {
    tv =(TextView) findViewById(R.id.textview_output);
    tv.setText(rawResult.getText());
}

今、私は新しいアクティビティを呼び出したい

public void handleDecode(Result rawResult, Bitmap barcode) {
    //Want to call new activity using intent and pass result in new activity.
}

そして、私はコードを次のように試しました:

public void handleDecode(Result rawResult, Bitmap barcode) {
    String result = rawResult.getText();
    Intent intent = new Intent(QRScanner.this,Activity2.class);
    intent.putExtra("Result", result);
    startActivity(intent);
}

しかし、それは機能していません。エミュレータでこのコードをテストする方法はわかりません。

デバイスでこのアプリを実行しようとすると、終了します。そのために私は何をすべきか。次のアクティビティで QR コードのスキャン結果が必要になるのは、私のアプリケーション ニーズです。

このために何をすべきか教えてください。

ありがとうございました。

4

2 に答える 2

0

アプリケーションが終了する理由がわかりました。リンクを読んでから、ライブラリファイルをメニフェストで宣言していないことを理解しました。私はそれが宣言しなければならないことを知らないので。

ありがとうございました。

于 2013-02-11T08:53:25.260 に答える
0

マニフェストで Activity2 を宣言しましたか? その getText() を try-catch でラップします ...

String result = "";
try {
    result = rawResult.getText();
catch (NullPointerException npe) {
    Log.e("handleDecode()", "Result was null.", npe);
}

少なくとも、結果が null の場合は "" を渡します。

于 2013-02-09T13:09:58.653 に答える