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

如何使用Kotlin实现Android menu.xml菜单项的国际化适配

错误原因

你遇到的编译错误有两个层面的问题:

  • XML语法要求:所有属性值必须用双引号包裹,你直接写getString(...)没有加引号,首先就触发了XML解析错误,你看到的法语报错翻译过来就是「item元素的android:title属性缺少左引号」。
  • Android XML资源规则:菜单XML属于Android资源文件,不能直接调用Java/Kotlin层的getString()方法,Android提供了专门的资源引用语法供XML中调用字符串资源。

正确实现步骤

  1. 先确认你已经在各语言对应的strings.xml中配置了对应字符串:
    默认中文路径res/values-zh/strings.xml示例:
<string name="name">弹出提示</string>

英文国际化路径res/values-en/strings.xml示例:

<string name="name">Show Toast</string>
  1. 修改menu_main.xml中的title属性写法,用@string/资源名的格式引用即可,修改后的完整代码如下:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/menu_open_website"
        android:title="@string/open_website"
        android:icon="@drawable/ic_menu_quiz"/>
    <item
        android:id="@+id/menu_show_toast"
        android:title="@string/name"
        android:icon="@drawable/ic_menu_web"/>
</menu>

按以上写法修改后,App运行时系统会自动根据当前设备的语言设置,加载对应strings.xml中的字符串显示到菜单项,不需要额外写代码处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:15:03