Java 无法对列表视图项使用字符串资源
我试图使用字符串资源来处理我的两行列表视图项,而不是对它们进行硬编码,但我遇到了这个错误。我怎样才能解决这个问题 在使用字符串资源之前Java 无法对列表视图项使用字符串资源,java,android,android-fragments,android-listview,android-listfragment,Java,Android,Android Fragments,Android Listview,Android Listfragment,我试图使用字符串资源来处理我的两行列表视图项,而不是对它们进行硬编码,但我遇到了这个错误。我怎样才能解决这个问题 在使用字符串资源之前 public class ListData { public static final String[][] items = { {"America","America Description"}, {"Europe","Europe Description"}, }; } public cla
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},
};
}
使用字符串资源后
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
您要么使用枚举,在这种情况下,将为您拥有的每个字符串分配一个整数,要么使用自动生成的值,其中java/android生成常量整数来代替您给定的字符串
无论哪种方式,R.string.somestring的输出都是一个整数,您的声明要求您输入字符串。因此出现错误是因为
R.string.america
是一个整数,表示strings.xml
中的字符串。因此,您应该将String[][]
的类型更改为int[][]
。如果必须将值分配给TextVIew
android将负责strings.xml
中的查找,您需要知道R
类中只存储了解析为所代表字符串的引用。这些引用都是整数。所以你有两种可能来解决这个问题:
getResources().getString(stringRes)
解析字符串引用,然后将其添加到字符串数组中