在android studio中检索if / else子句的字符串

时间:2017-03-01 08:16:54

标签: java android string if-statement

我试图让qr代码扫描程序进入应该重定向到依赖扫描代码的不同活动的位置,但是我无法以正确的形式从结果中获取字符串。

  @Override
public void handleResult(Result result) {
    Log.w("handleResult", result.getText());
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("Scan results");
    builder.setMessage(result.getText());
    AlertDialog alertDialog = builder.create();
    alertDialog.show();

    String id_helper = result.getText().toString();

    if (id_helper == "1") {
       startActivity(new Intent(this, Sample1.class));
    } else if (id_helper == "2") {
        startActivity(new Intent(this, Sample2.class));
    } else {
        startActivity(new Intent(this, Sample3.class));
    }

3 个答案:

答案 0 :(得分:5)

您正在以错误的方式比较字符串,在Java中,您必须使用equals方法比较字符串。

if ("1".equals(id_helper)) {
    // Open activity
}

始终将已知变量放在条件的左侧以避免NullPoinerExceptions

答案 1 :(得分:1)

将您的if语句更改为:

if ("1".equals(id_helper)) {
   startActivity(new Intent(this, Sample1.class));
} else if ("2".equals(id_helper)) {
    startActivity(new Intent(this, Sample2.class));
} else {
    startActivity(new Intent(this, Sample3.class));
}

答案 2 :(得分:0)

我最好的猜测是你正在进行无效的字符串检查。

if (id_helper == "1") {
       startActivity(new Intent(this, Sample1.class));
    } else if (id_helper == "2") {
        startActivity(new Intent(this, Sample2.class));
    } else {
        startActivity(new Intent(this, Sample3.class));
    }

您的代码使用==代替myString.contentEquals("2")myString.equals("2")或myString.equalsIgnoreCase(“2”)