无法为列表视图项使用字符串资源

时间:2015-06-20 15:21:41

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

  1. 只需将2D数组的类型更改为int
  2. 即可
  3. 使用getResources().getString(stringRes)解析String引用,然后将其添加到String数组

答案 2 :(得分:0)

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

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