2017-03-02 29 views
1

私はQRコードを読むために 'com.google.android.gms:play-services:10.2.0'(https://developers.google.com/android/reference/com/google/android/gms/vision/barcode/Barcode.html#valueFormat)を使用しています。読んだQRをStringと比較したい。一致する場合は、メッセージを表示する必要があります。QRコードと文字列ANDROIDの比較

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) { 
     if (data != null) { 
      final Barcode barcode = data.getParcelableExtra("barcode"); 
      // I also tried barcode.displayValue! 
      final String password = barcode.rawValue; 

      if (password == "123456") { 
       resultText.post(new Runnable() { 
        @Override 
        public void run() { 
         resultText.setText("Sucess"); 
        } 
       }); 

私のQRコードを表示すると、123456が読み込まれますが、それを "123456"と比較すると機能しません。

私はdisplayValueとrawValueが私のQRを文字列にキャストしていると考えました。誰にも分かりますか? ありがとう

答えて

1

文字列を比較するには、password.equals("123456")を使用する必要があります。 ==演算子は、文字列が同じ値ではなく完全に同じオブジェクトであるかどうかを確認します。

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) { 
     if (data != null) { 
      final Barcode barcode = data.getParcelableExtra("barcode"); 
      // I also tried barcode.displayValue! 
      final String password = barcode.rawValue; 

      if (password.equals("123456")) { 
       resultText.post(new Runnable() { 
        @Override 
        public void run() { 
         resultText.setText("Sucess"); 
        } 
       }); 
+1

ご意見ありがとうございます。それは簡単でしたが、よく説明されました。 =]それは私の問題を解決しました。 – user258813

2

使用、それは彼らが等しい場合はそれ以外の文字列を比較するために有効であるdetails

password.equals("12345") 
+0

ご返信ありがとうございます。それは私の問題を解決した]] – user258813

1

使用password.equals( "123456")、のためにfalseを返すtrueを返します等しいです。これがあなたの問題を解決することを願っています。 "=="は文字列の値の参照を比較するため、.equals()は実際の値と比較されます。

+0

あなたの貢献に感謝します。それは私の問題を解決しました。 – user258813