我试图让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));
}
答案 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”)