我从列表中获取一个字符串并尝试将其与值中的某些字符串进行比较,然后执行一些操作
for(int i=0; i<sizeOfList; i++){
String LIST_TITLE;
LIST_TITLE = list_title.get(i); //the List list_title includes some strings
if(LIST_TITLE.equals(R.string.percentbattery)) {
//do stuff
Log.d("EQUAL!","" + LIST_TITLE);
} else if(LIST_TITLE.equals(R.string.screenrecorder) == true) {
//do stuff
Log.d("EQUAL!","" + LIST_TITLE);
} else if(LIST_TITLE.equals(R.string.eightsms) == true) {
//do stuff
Log.d("EQUAL!","" + LIST_TITLE);
} else {
// do stuff
Log.e("TITLE NOT EQUAL","" + LIST_TITLE);
}
}
如果我将我的LIST_TITLE与我的Logcat中的(R.string。...)进行比较,它们是相同的,但我只得到&#34; TITLE NOT EQUAL&#34;记录else语句。
还有另一种比较这些字符串的方法吗? &#34; ==&#34;方法也不起作用。
答案 0 :(得分:3)
R.string.percentbattery
不是String,它是一个Integer,是引用该字符串的ID。
你想要的是:
LIST_TITLE.equals(context.getResources.getString(R.string.percentbattery))
答案 1 :(得分:2)
LIST_TITLE.equals(R.string.percentbattery)
这是不正确的,因为您正在尝试将字符串与资源ID进行比较 您应该首先从资源中获取字符串:
LIST_TITLE.equals(getResources().getString(R.string.percentbattery))
答案 2 :(得分:0)
R.string.xxx
是int
。您需要从String
res
像
这样的东西if(LIST_TITLE.equals(getResources().getString(R.string.percentbattery)))
假设您有Activity Context
可用。否则,您需要在Context
getResources()
变量
答案 3 :(得分:0)
R.string.some_id
只是一个整数,通过它可以从资源中获取String。
因此,为了在您的情况下正确比较Strings
,您必须这样做:
String precentBattery = getResources().getString(R.string.percentbattery);
if (LIST_TITLE.equals (percentBattery)) ...