只要我将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自动设置的代码?
答案 0 :(得分:2)
你可以这样做而不是抑制:
在res/values/strings.xml
中添加字符串资源:
<string name="button_label">Button</string>
将上述资源设置为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文件将有助于本地化。
当您使用工具时,它实际上并未设置要查看的文本,但它只是在预览窗口中显示它在视觉上的显示方式,当您运行应用程序时,您不会添加文本在工具中。