我使用的是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投射到一个字符串中。有谁有想法吗? 感谢
答案 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()比较实际值。