企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 类型化数组 在 XML 中定义的`[TypedArray](https://developer.android.google.cn/reference/android/content/res/TypedArray)`。您可以使用这种资源创建其他资源(例如可绘制对象)的数组。请注意,此类数组不要求所含的资源具有相同的类型,因此您可以创建混合资源类型的数组,但必须知道数组中有哪些数据类型及其位置,以便可以使用`[TypedArray](https://developer.android.google.cn/reference/android/content/res/TypedArray)`的`get...()`方法正确获取每一项数据。 **注意**:类型化数组是使用`name`属性中提供的值(而不是 XML 文件的名称)引用的简单资源。因此,您可以在一个 XML 文件中将类型化数组资源与其他简单资源合并到一个`<resources>`元素下。 ### 文件位置: `res/values/*filename*.xml` 该文件名可以任意设置。`<array>`元素的`name`将用作资源 ID。 编译后的资源数据类型: 指向`[TypedArray](https://developer.android.google.cn/reference/android/content/res/TypedArray)`的资源指针。 ### 资源引用: 在 Java 中:`R.array.*array_name*` 在 XML 中:`@[*package*:]array.*array_name*` ### 语法: ~~~     <?xml version="1.0" encoding="utf-8"?>     <resources>         <array             name="integer_array_name">             <item>resource</item>         </array>     </resources> ~~~ ### 元素: * `<resources>` **必需**。该元素必须是根节点。 没有属性。 * `<array>` 定义一个数组。包含一个或多个`<item>`子元素。 属性: * `android:name` 字符串。数组的名称。此名称将用作引用数组的资源 ID。 * `<item>` 通用资源。该值可以是对资源或简单数据类型的引用。必须是`<array>`元素的子元素。 没有属性。 ### 示例: 保存在`res/values/arrays.xml`的 XML 文件: ~~~     <?xml version="1.0" encoding="utf-8"?>     <resources>         <array name="icons">             <item>@drawable/home</item>             <item>@drawable/settings</item>             <item>@drawable/logout</item>         </array>         <array name="colors">             <item>#FFFF0000</item>             <item>#FF00FF00</item>             <item>#FF0000FF</item>         </array>     </resources> ~~~ 以下应用代码会检索每个数组,然后获取每个数组中的第一个条目: ~~~     Resources res = getResources();     TypedArray icons = res.obtainTypedArray(R.array.icons);     Drawable drawable = icons.getDrawable(0);     TypedArray colors = res.obtainTypedArray(R.array.colors);     int color = colors.getColor(0,0); ~~~