String.equal() 函数无法使用来自“R.string”的值
String.equal() funtion not working with value from `R.string`
我想比较我的结果(字符串),我正在使用下面的代码来检查它。
result = "password";
if (result.equals(R.string.myResponse)) {
//do something
}
R.string 文件
<string name="myResponse">password</string>
以上功能无效,未进入 if
部分。
但是,如果我将 R.string.myResponse
替换为 if(result.equals("password"))
的实际值,那么它工作正常。
使用来自 R.string
的字符串值有什么问题
R.string.myResponse 不是字符串,它是字符串的 ID
。
您需要使用 ID
获取字符串。
类似 context.getString(R.string.myResponse)
的内容,或者如果您在 activity 或片段中,则只需 getString(R.string.myResponse)
。
替换
R.string.myResponse
和
getResources().getString(R.string.myResponse);
R.string.myResponse
将 return 一个整数值,它是特定字符串资源的 ID。您可以使用 getString(R.string.myResponse)
获取为该 ID 存储的字符串。为了安全起见,有时使用 getResources().getString(R.string.myResponse)
作为 getString()
return null.
我想比较我的结果(字符串),我正在使用下面的代码来检查它。
result = "password";
if (result.equals(R.string.myResponse)) {
//do something
}
R.string 文件
<string name="myResponse">password</string>
以上功能无效,未进入 if
部分。
但是,如果我将 R.string.myResponse
替换为 if(result.equals("password"))
的实际值,那么它工作正常。
使用来自 R.string
R.string.myResponse 不是字符串,它是字符串的 ID
。
您需要使用 ID
获取字符串。
类似 context.getString(R.string.myResponse)
的内容,或者如果您在 activity 或片段中,则只需 getString(R.string.myResponse)
。
替换
R.string.myResponse
和
getResources().getString(R.string.myResponse);
R.string.myResponse
将 return 一个整数值,它是特定字符串资源的 ID。您可以使用 getString(R.string.myResponse)
获取为该 ID 存储的字符串。为了安全起见,有时使用 getResources().getString(R.string.myResponse)
作为 getString()
return null.