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.