2017-03-17 15 views
0

私は二次元コード画像.Thisは、それがCaptureActivityを呼び出します私のMainActivity.javaZxing CaptureActivity.handleDecode()

private Button scan; 
    scan = (Button) findViewById(R.id.btn_scan); 
    scan.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 

     Intent intent=new Intent(MainActivity.this,CaptureActivity.class); 
     startActivityForResult(intent, SCAN_CODE); 

    } 
    }); 

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (resultCode != Activity.RESULT_OK) { 
      return; 
     } 
     switch (requestCode) { 
     case SCAN_CODE: 
      Intent myIntent=getIntent(); 
      Bundle bundle=myIntent.getExtras(); 
      QR=bundle.getString("QR"); 
      break; 
     default: 
      break; 

     } 
     super.onActivityResult(requestCode, resultCode, data); 
    } 

でスキャンする]ボタンをクリックすると、私は、Zxingを使用して新しいです。 handleDecode()、そしてこれがCaptureActivity.java

 public void handleDecode(Result rawResult, Bitmap barcode, float scaleFactor) { 
      //I want to get the text in the image. 
       String result = rawResult.getText(); 
       Intent intent = new Intent(); 
       intent.putExtra("QR", result); 
       if(result!=null && !"".equals(result)) 
       setResult(RESULT_OK, intent); 
       else{ 
        setResult(RESULT_CANCELED, intent); 
       } 
       finish(); 
} 

である。しかし、それは例外 enter image description here

を持っていると私はなぜkonwませんか?

+0

完全な例を示してください。 "This is CaptureActivity.java"を書くのではなく、**あなたのコード**に 'public class CaptureActivity ... 'を使って表示します。同様に、最初のコードスニペットは有効なJavaである必要があります。つまり、クラス内にあるはずです。 –

+0

また、例外をコピーしてここに貼り付けてください。 –

+0

あなたのアドバイスをお寄せいただきありがとうございます。この問題は解決されました。 –

答えて

0

あなたはむしろdataonActivityResult()のパラメータである

Intent myIntent = getIntent(); 
Bundle bundle = myIntent.getExtras(); 
QR = bundle.getString("QR"); 

よりも、あなたのケースでdata.getStringExtra("QR")を使用する必要があります。

!"".equals(result)の代わりに!result.isEmpty()を使用してください。

読みやすくなっています。

希望すると助かります!

+0

ありがとうございました。あなたの方法で解決されました –

+0

@JonSnowチェックマークをクリックしてこの回答を受け入れるようにしてください –