【发布时间】:2013-06-05 18:23:57
【问题描述】:
我正在 Eclipse IDE 中开发一个简单的 android 应用程序,我在一行 xml 代码的左侧有一个黄色的小图标,看起来像一个灯泡,旁边有一个感叹号。当我将鼠标悬停在上面时,它显示“[I18N] 硬编码字符串“输入...,应该使用@string 资源输入”。运行和调试成功但我只想摆脱它,因为我觉得它很烦人。应该有吗?
【问题讨论】:
我正在 Eclipse IDE 中开发一个简单的 android 应用程序,我在一行 xml 代码的左侧有一个黄色的小图标,看起来像一个灯泡,旁边有一个感叹号。当我将鼠标悬停在上面时,它显示“[I18N] 硬编码字符串“输入...,应该使用@string 资源输入”。运行和调试成功但我只想摆脱它,因为我觉得它很烦人。应该有吗?
【问题讨论】:
如果它很烦人,那是有原因的。您完全应该使用 @string 资源而不是硬编码的字符串。您所要做的就是将您的字符串放入 res/values/strings.xml 并通过 @string/my_string_id_here 在您的布局中引用它。
这对于多语言支持或复数字符串非常有用。
您可以了解更多here。
希望这会对你有所帮助。
【讨论】:
正确的方法:
按照建议将所有字符串移动到资源文件中,并在视图中引用它们,如下所示:@string/mystringname
“其他”方式:
在Window/Preferences/Android/Lint Error Checking 中关闭 Eclipse 中的 Lint 警告
这两种方法都会消除那个烦人的三角形:)
【讨论】:
出现此警告是因为不建议将字符串硬编码到 Android 应用的 Java 源代码中。它会编译得很好 - 但Android Lint 会抱怨它,所以这就是为什么它是“警告”而不是“错误”。通常,最好在单独的“string.xml”文件中定义它们。
如果您想知道原因,请查看this answer。
例如,检查this answer。
您还应该查看string resources 的官方文档。
【讨论】: