【问题标题】:Why does Android Studio give me warnings to add code that Android Studio already added automatically?为什么 Android Studio 会警告我添加 Android Studio 已自动添加的代码?
【发布时间】:2017-08-15 18:39:13
【问题描述】:

当我将一个按钮从 Palette 拖放到 XML 文件中时,当我点击“显示警告和错误”时,Android Studio 会给我以下错误:

Message: [I18N] Hardcoded string "Button", should use `@string` resource Suggested Fixes: 
- Extract string resource
- Suppress: Add tools:ignore="HardcodedText" attribute

在 Text 中的 Button 代码中,当我将按钮拖放到 XML 文件中时,以下 Android Studios 会自动进入:

android:text="Button"

我是否总是必须单击“禁止”选项,因为我不知道他们希望我为“提取字符串资源”选项更改什么。还是要求我更改自动设置的 Android Studio 代码?

【问题讨论】:

  • 我不会再担心它了,因为我不使用拖放 GUI 创建器——它是在 Android 中工作效率最低的方式。学习它背后的 XML 语言并用纯 XML 编写你的 UI,你会更少的错误和更快地完成工作。

标签: android android-studio textview android-xml


【解决方案1】:

你可以这样做而不是压制:

  1. res/values/strings.xml中添加一个String资源:

    <string name="button_label">Button</string>

  2. 将上述资源设置为Button 的文本:

    android:text="@string/button_label"

【讨论】:

  • 为什么 Android Studio 不自动添加正确的代码而不是错误的代码?
  • 我不确定其背后的实际原因。他们会错过的。但是,当您创建一个新项目时,“Hello World”文本位于 strings.xml 文件中。其实这并没有对错之分。最好将字符串放在 strings.xml 文件中。这样您就可以在多个布局中重用相同的字符串,并且需要将您的应用程序本地化为多种语言。否则,两种方式都可以正常工作。
  • “Hello World”不在 strings.xml 文件中。我只有我在 strings.xml 文件中给出的文件名。
  • 这取决于您在新建项目向导中选择的项目类型。
  • 谢谢,我现在知道了。我刚刚下载了 Android Studio 并学习了它。它与 Xcode 有点不同,你可以拖放按钮,没有问题。
【解决方案2】:

这不是错误,这只是警告说您应该使用字符串资源,而不是代码中的硬编码字符串。但是您可以使用 hadrdcoded 字符串,一切都会正常工作。
使用 String 资源可以简化您的生活。例如,当您想要本地化您的应用程序时。见截图。 using string resources 您可以设置字符串 res。到TextView.Text,然后创建几个android resource directories 名称为values, values-ru, values-uk 等。 在此目录中,您应该为每个目录创建文件 strings.xml。 并覆盖你的字符串,如

<string name="message"> Message </string> in values
<string name="message"> Сообщение </string> in values-ru

现在,如果您将设备语言从 en 更改为 ru ,在您的应用中 textView 将写入 "Сообщение"

它在其他几种情况下也很有用。

【讨论】:

    【解决方案3】:

    消息:[I18N] 硬编码字符串“Button”,应使用@string 资源

    建议的修复:

    • 提取字符串资源

    您应该始终从 res/values/strings.xml 中的 string.xml 中选择字符串。这不是对字符串进行硬编码的正确方法,将其放入 string.xml 文件有助于将来本地化

    • 添加工具:ignore="HardcodedText" 属性

    当您使用工具时,它实际上并没有设置要查看的文本,而只是在预览窗口中向您显示它的视觉外观,当您运行应用程序时,您不会在工具中添加文本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      • 1970-01-01
      • 2021-07-13
      • 2013-10-11
      • 2015-07-14
      • 1970-01-01
      相关资源
      最近更新 更多