QR码与字符串ANDROID的比较

时间:2017-03-02 09:26:09

标签: android qr-code

我使用的是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与字符串进行比较。如果匹配,则应显示消息。

  @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投射到一个字符串中。有谁有想法吗? 感谢

3 个答案:

答案 0 :(得分: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 :(得分:1)

使用equals如果相等则返回true,否则返回false details

password.equals("12345")

答案 2 :(得分:1)

使用password.equals(“123456”),它对比较字符串有效。我希望这能解决你的问题。因为“==”比较字符串中值的引用,其中.equals()比较实际值。