我正在尝试将字符串资源用于我的2行列表视图项而不是对它们进行硬编码,但是我得到了这个错误。我该如何解决这个问题?
使用字符串资源之前
public class ListData {
public static final String[][] items = {
{"America","America Description"},
{"Europe","Europe Description"},
};
}
使用字符串资源后
public class ListData {
public static final String[][] items = {
{R.string.america,R.string.america_description},
{R.string.europe, R.string.europe_description},
};
}
错误
不兼容的类型。必需:java.lang.String |发现:int
答案 0 :(得分:1)
这是因为R.string.america
是一个整数,表示strings.xml
内的字符串。因此,您应该将String[][]
的类型更改为int[][]
。如果您必须将值分配给TextVIew
android,则会在strings.xml
中进行查找。
答案 1 :(得分:1)
您需要知道R
类中只存储了被解析为它们所代表的String的引用。这些引用都是整数。所以你有两种可能来解决这个问题:
getResources().getString(stringRes)
解析String引用,然后将其添加到String数组答案 2 :(得分:0)
你要么使用ENUM,在这种情况下,将为你拥有的每个字符串分配一个整数,或者你使用自动生成的值,其中java / android生成常量整数来代替你给出的字符串。
无论哪种方式,R.string.somestring的输出都是一个整数,你的声明要求你输入字符串。因此错误