2017-03-01 51 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