无法将字符串资源用于列表视图项
Unable to use string resources for list view items
我正在尝试为我的 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},
};
}
错误
Incompatible types. Required: java.lang.String | Found: int
您要么使用 ENUM,在这种情况下,将为您拥有的每个字符串分配一个整数,要么您使用自动生成的值,其中 java/android 生成常量整数来代替您创建的字符串给。
无论哪种方式,R.string.somestring 的输出都是一个整数,您的声明需要您输入字符串。因此错误
因为R.string.america
是一个整数,表示strings.xml
里面的一个字符串。因此,您应该将 String[][]
的类型更改为 int[][]
。如果您必须将值分配给 TextVIew
android 将负责在 strings.xml
.
中查找
您需要知道 R
class 中仅存储了引用,这些引用被解析为它们所代表的字符串。此引用都是整数。所以你有两种可能性来解决这个问题:
- 只需将二维数组的类型更改为 int
- 使用
getResources().getString(stringRes)
解析字符串引用,然后将其添加到您的字符串数组中
我正在尝试为我的 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},
};
}
错误
Incompatible types. Required: java.lang.String | Found: int
您要么使用 ENUM,在这种情况下,将为您拥有的每个字符串分配一个整数,要么您使用自动生成的值,其中 java/android 生成常量整数来代替您创建的字符串给。
无论哪种方式,R.string.somestring 的输出都是一个整数,您的声明需要您输入字符串。因此错误
因为R.string.america
是一个整数,表示strings.xml
里面的一个字符串。因此,您应该将 String[][]
的类型更改为 int[][]
。如果您必须将值分配给 TextVIew
android 将负责在 strings.xml
.
您需要知道 R
class 中仅存储了引用,这些引用被解析为它们所代表的字符串。此引用都是整数。所以你有两种可能性来解决这个问题:
- 只需将二维数组的类型更改为 int
- 使用
getResources().getString(stringRes)
解析字符串引用,然后将其添加到您的字符串数组中