String.equal()函数不使用`R.string`中的值

时间:2016-07-13 12:18:28

标签: java android string android-studio equals

我想比较我的结果(字符串),我正在使用以下代码进行检查。

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

中的字符串值有什么问题

3 个答案:

答案 0 :(得分:10)

R.string.myResponse不是字符串,而是字符串的ID

您需要使用ID获取字符串。

context.getString(R.string.myResponse)这样的内容,或者如果您在某个活动或片段中,那么只需getString(R.string.myResponse)

答案 1 :(得分:1)

替换

  R.string.myResponse

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

答案 2 :(得分:0)

R.string.myResponse将返回一个整数值,该值是特定字符串资源的ID。您可以使用getString(R.string.myResponse)来获取为该ID存储的字符串。为安全起见,使用getResources().getString(R.string.myResponse)作为getString()有时会返回null。