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

时间:2010-01-14 14:09:12

标签: 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</item>
          <item>16</item>
     </integer-array>
</resources>

并且我尝试了几种方法来访问它:

int[] bases = R.array.UserBases;

这只返回和引用UserBases而不是数组本身

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

这引发了一个异常,告诉我int引用R.array.UserBases指向什么

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

我已经检查了android文档,但我没有找到任何非常有成效的东西。

1 个答案:

答案 0 :(得分:62)

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

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

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

这就是传递Context的常用方法;您将需要它来获取应用程序的资源。