Java 从Android程序中的xml资源获取整数数组

Java 从Android程序中的xml资源获取整数数组,java,android,Java,Android,快一点 我在res/values/integers.xml中有一个xml资源 <?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="UserBases"> <item>2</item> <item>8</item> <item>10</i

快一点

我在res/values/integers.xml中有一个xml资源

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <integer-array name="UserBases">
          <item>2</item>
          <item>8</item>
          <item>10</item>
          <item>16</item>
     </integer-array>
</resources>
这只是返回和int对userbase的引用,而不是数组本身

int[] bases = Resources.getSystem().getIntArray(R.array.UserBases);
这向我抛出了一个异常,告诉我int引用R.array.userbase指向nothing

访问此数组的最佳方法是什么,将其推送到一个好的基类型int[],然后可能将任何修改推回到xml资源中


我查看了android文档,但没有发现任何非常有成效的东西。

您需要使用资源来获取int数组;但是,您使用的系统资源仅包括标准的Android资源(例如,通过
Android.R.array.*
访问的资源)。要获得自己的资源,您需要通过一个上下文访问这些资源

例如,所有活动都是上下文,因此在活动中可以执行以下操作:

Resources r = getResources();
int[] bases = r.getIntArray(R.array.UserBases);

这就是为什么传递上下文通常是有用的;您需要它来掌握应用程序的资源。

酷豆!谢谢。另外,从数组中添加和删除项的最佳方法是什么(保存编辑原始xml)——本质上是更新从int[]到xml的任何更改;构建apk时,所有资源xml都被编译成二进制。你应该提出一个新问题,也许其他人知道。
Resources r = getResources();
int[] bases = r.getIntArray(R.array.UserBases);