2

当我在 android 布局中添加任何元素时,编译器(eclipse)会在元素的属性上显示警告android:text="Text" 以下警告是什么意思。

“[118N]硬编码字符串“文本”,应该使用@string资源”

当我们用“myString%”之类的字符串添加@时,它会出错。

4

5 回答 5

3

该警告是 Lint 警告。它警告可能的错误。如果你愿意,你可以忽略它。但我觉得它是一个有用的信息。

而不是硬编码字符串值到 textview 定义 strings.xml 中的字符串并引用相同的 @strings/mystring

引用自

http://tools.android.com/tips/lint

Android Lint 是 ADT 16(和 Tools 16)中引入的一个新工具,它可以扫描 Android 项目源中的潜在错误。它既可以作为命令行工具使用,也可以与 Eclipse(如下所述)和 IntelliJ(详细信息)集成。该架构有意独立于 IDE,因此有望与其他 IDE、其他构建工具以及持续集成系统集成。

这是 Lint 检查的列表

http://tools.android.com/tips/lint-checks

解决

在 res/values/strings.xml 中定义资源

  <string name="hello_world">Hello world!</string>

在xml中

  android:text="@string/hello_world"  
于 2013-07-20T07:05:29.820 回答
3

这意味着在您的 res/values 文件夹中,您应该创建一个 strings.xml 文件并在其中放置如下定义:

<?xml version="1.0"?>
    <resources> 
        <string name="my_string">Text</string>
    </resources>

然后用于@string/my_string在 xml 属性中引用它或getResources().getString(R.string.my_string);在代码中使用该字符串。

于 2013-07-20T07:08:12.957 回答
2

你不会遇到麻烦。但仍然@string/yourString在您的 xml 中使用将是一个好习惯,它会提高您的应用程序性能。

无需担心这些警告。也许android开发人员认为这不是一个好习惯。但是如果你的应用程序有一天可能支持多语言,那么使用@string/mystring 是最佳实践。

您需要在string.xml如下声明您的文本:

  <string name="hello_world">androiddevelopmentworld!</string>

您需要在 xml 中使用如下文本:

 android:text="@string/hello_world"  
于 2013-07-20T07:07:31.287 回答
1

既然上面的每个人都可能解释过这个警告,我想我可以解释一下使用字符串资源的好处。如果你像这样编码android:text="hello world",假设它是你的应用程序的标题,并且它在你的应用程序中被多次使用,突然你的老板想要更改名称,然后您可能想要更改已经硬编码的每个位置,通过使用字符串资源,您几乎可以更改每个位置使用的相同字符串,只需更改字符串的值

于 2013-07-20T08:40:20.797 回答
0

警告说最好使用字符串资源而不是硬编码文本作为控件上的文本属性,
还有更多的警告,例如“避免使用'px'作为单位,使用'dp'代替”等等。
开发一个好的应用程序非常有用

于 2013-07-20T07:28:26.433 回答