【问题标题】:Unable to use string resources for list view items无法将字符串资源用于列表视图项
【发布时间】:2015-09-06 11:14:09
【问题描述】:

我正在尝试将字符串资源用于我的 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

【问题讨论】:

    标签: java android android-fragments android-listview android-listfragment


    【解决方案1】:

    这是因为R.string.america 是一个整数,它表示strings.xml 中的一个字符串。因此,您应该将String[][] 的类型更改为int[][]。如果您必须将值分配给 TextVIew,android 将负责在 strings.xml 中查找。

    【讨论】:

      【解决方案2】:

      您需要知道R 类中仅存储了引用,这些引用被解析为它们所代表的字符串。这个引用都是整数。所以你有两种可能解决这个问题:

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

      【讨论】:

        【解决方案3】:

        您要么使用 ENUM,在这种情况下,将为您拥有的每个字符串分配一个整数,或者您正在使用自动生成的值,其中 java/android 生成常量整数来代替您提供的字符串。

        无论哪种方式,R.string.somestring 的输出都是一个整数,您的声明希望您输入字符串。因此错误

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多