2016-07-13 47 views
-1

我想比較我的結果(字符串),我使用下面的代碼來檢查它。String.equal()函數不能與`R.string`的值一起工作

result = "password"; 
if (result.equals(R.string.myResponse)) { 
    //do something 
} 

R.string文件

<string name="myResponse">password</string> 

上述功能無法正常工作,並且不進入if一部分。 但是,如果我用if(result.equals("password"))替換R.string.myResponse及其實際值,那麼它工作正常。

從什麼R.string

+2

您是否嘗試過使用調試器? – Jens

+2

嘗試'if(result.equals(getString(R.string.myResponse)))' – daco

+2

'R.string.myResponse'將返回整數給你。 – SripadRaj

回答

9

R.string.myResponse是使用字符串值的問題不是一個字符串它是一個字符串的ID

您需要使用該字符串獲取字符串ID

類似於context.getString(R.string.myResponse)或者如果您處於活動或片段中,那麼只是getString(R.string.myResponse)

1

替換

R.string.myResponse 

getResources().getString(R.string.myResponse); 
0
R.string.myResponse

將返回一個整數值,它是特定字符串資源的ID。您可以使用getString(R.string.myResponse)獲取爲該ID存儲的字符串。爲了安全起見,使用getResources().getString(R.string.myResponse),因爲getString()有時會返回null。

相關問題