无法将字符串资源用于列表视图项

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 中仅存储了引用,这些引用被解析为它们所代表的字符串。此引用都是整数。所以你有两种可能性来解决这个问题:

  1. 只需将二维数组的类型更改为 int
  2. 使用 getResources().getString(stringRes) 解析字符串引用,然后将其添加到您的字符串数组中