Android [字符串数组]无法解析或不是字段

时间:2013-01-16 13:34:08

标签: java android

我收到有关字符串数组(位于strings.xml)无法解析的错误。

我已经完成了互联网所说的一切:

  1. 重启Eclipse
  2. 删除了gen文件夹
  3. 中的R.java文件
  4. 我的values文件夹仍在res文件夹内,未移动
  5. 我的XML文件都没有错误
  6. Project -> Clean
  7. 我的课程中没有导入android.R
  8. 检查R.java类,它确实没有app_categories属性(我的数组名称)
  9. XML的相关部分:

    <string-array name="app_categories">
        <item >Cat 1</item>
        <item >Cat 2</item>
        <item >Cat 3</item>
        <item >Cat 4</item>
        <item >Cat 5</item>
        <item >Cat 6</item>
        <item >Cat 7</item>
        <item >Cat 8</item>
        <item >Cat 9</item>
    </string-array>
    

    Java代码:

    String[] categoryNames = getResources().getStringArray(R.string.app_categories);
    

    我所有其他字符串都可见。我有另一个像这样定义的数组,而且那个也不可见。

    下面的确切错误:

    app_categories cannot be resolved or is not a field [class_name].java   [path]  line 45 Java Problem
    

4 个答案:

答案 0 :(得分:6)

试试这种方式:

 getResources().getString(R.array.app_categories_list);

而不是R.string使用R.array,您将得到您的arraylist。

答案 1 :(得分:3)

不要将字符串数组放在strings.xml中您必须创建一个名为arrays.xml的新文件并将它们放在那里。 在打电话时你需要R.arrays.myarray,而不是R.strings.MyArray

答案 2 :(得分:0)

清理项目后,尝试通过命令行运行adb kill-server和adb start-server重新启动adb服务器

答案 3 :(得分:0)

解决方案可能是手动创建R:

将鼠标悬停在问题所在的活动文件中的错误上,然后手动创建它,这将导致R生成您在 strings.xml中创建的字符串数组