为什么Android Studio会向我发出警告,要求添加Android Studio已自动添加的代码?

时间:2017-08-15 18:39:13

标签: android android-studio textview android-xml

只要我将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工作室自动进入:

android:text="Button"

我是否总是必须单击“抑制”选项,因为我不知道他们希望我为“Extract String Resource”选择更改什么。或者是否要求我更改Android Studio自动设置的代码?

3 个答案:

答案 0 :(得分:2)

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

  1. res/values/strings.xml中添加字符串资源:

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

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

    android:text="@string/button_label"

答案 1 :(得分:0)

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

<string name="message"> Message </string>中的

values
<string name="message"> Сообщение </string>等中的values-ru

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

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

答案 2 :(得分:0)

  

消息:[I18N]硬编码字符串&#34;按钮&#34;,应使用@string   资源

建议的修正:

  • 提取字符串资源

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

  • 添加工具:ignore =&#34; HardcodedText&#34;属性

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