You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio的res/values文件夹下可否使用自定义命名的XML资源文件?

结论

res/values 目录下完全支持使用任意自定义命名的 XML 文件存放标准资源(字符串、字符串数组、颜色、样式等),无需强制使用 strings.xml、array.xml 这类默认文件名,也可以正常实现多语言翻译适配。

报错原因

Android 资源索引 R 类的子类是按照资源类型划分,而非资源定义的文件名划分:
你在 preferences.xml 中定义的 <string-array> 属于数组类型资源,无论存放在 values 目录下的哪个 XML 文件中,最终都会被归类到 R.array 子类下,不会生成和文件名对应的 R.preferences 子类。

正确引用方式

将你的引用代码修改为通过数组类型索引访问即可:

String[] prefsTitlesArray = getResources().getStringArray(R.array.prefs_titles);

补充规则

  • values 目录下的所有 XML 文件会被系统合并解析,资源仅按类型归类,和文件名完全无关
  • 多语言适配只需在对应语言的 values-xx 目录下创建同名的 preferences.xml,覆盖对应 <string-array> 定义即可,系统会自动按当前语言加载对应资源
  • 你之前查阅的资料提到的「自定义 XML 文件名」指的是存放在 res/xml 目录下的任意结构 XML 资源,这类资源才会生成 R.xml.xxx 格式的索引,不适用于 values 类的标准资源场景。

内容的提问来源于stack exchange,提问作者Fat Monk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:57:03