快点,
我在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文档,但我没有找到任何非常有成效的东西。
答案 0 :(得分:62)
您需要使用Resources来获取int数组;但是,您使用的系统资源仅包含标准的Android资源(例如,可通过android.R.array.*
访问的资源)。要获取自己的资源,您需要通过上下文之一访问资源。
例如,所有活动都是上下文,因此在活动中您可以执行此操作:
Resources r = getResources();
int[] bases = r.getIntArray(R.array.UserBases);
这就是传递Context的常用方法;您将需要它来获取应用程序的资源。