2017-03-01 53 views
0

我想要得到一个二维码扫描器去哪里它应该重定向到不同的活动依赖扫描的代码,但我无法从结果中获取字符串正确的形式。检索字符串的Android工作室中的if/else子句

@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)); 
    } 
+0

如果我得到你所问的很好,那么你要QR码传递到您的其他类, Sample1,Sample2和Sample3? – blueware

+0

你是否得到了id_helper的正确值? – Alpha

+0

我想根据qr代码被重定向到某个类,我不需要将qr代码本身传递给活动 –

回答

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)); 
} 
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”)

+0

噢好吧,太少了太晚了:D – Alpha