我是android开发的新手,并尝试创建一个名为new_layout.xml的新布局,我实际上在Lynda培训课程中看到了下面的代码,它运行良好。但每次我关闭Eclipse和AVD并在以后启动它时,我会在xml文件中出现一些错误:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" /> <!-- [I18N] Hardcoded string "TextView", should use @string resource -->
<EditText <!-- This text field does not specify an inputType or a hint -->
android:id="@+id/editText1"
android:layout_width="wrap_content" <!-- Use a layout_width of 0dp instead of wrap_content for better performance -->
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
以下是突然出现的其他错误的屏幕截图: ![在此输入图像说明] [1]
答案 0 :(得分:4)
Eclipse鼓励您使用strings.xml
文件来声明字符串,而不是将它们硬编码到其他项目文件中,就像您正在做的那样。
可以在项目的strings.xml
中找到res/values/strings.xml
文件。只需将字符串放在此文件中,如this example所示,并在其他项目文件中引用这些字符串。
这是一个它可能是什么样子的例子:
new_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/textView" /> <!-- [I18N] Hardcoded string "TextView", should use @string resource -->
<EditText <!-- This text field does not specify an inputType or a hint -->
android:id="@+id/editText1"
android:layout_width="wrap_content" <!-- Use a layout_width of 0dp instead of wrap_content for better performance -->
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button" />
res / values / strings.xml
<resources>
<string name="textView">TextView</string>
<string name="button">Button</string>
</resources>
由于截图没有正确链接,我只有标题可以使用,所以希望这会有所帮助。
答案 1 :(得分:1)
硬编码字符串,缺少内容描述等等都没有错误,但Lint
警告与应用程序的可用性相关。请咨询lint docs以了解更多信息。
示例:您可以将相同的字符串放入/res/values
和(例如)/res/values-de
文件夹中。如果设备语言是德语,系统将从使用-de
限定的文件夹中获取字符串。对字符串进行硬编码意味着无论设备设置如何,它都将保持不变。
这不是错误,而是可用性问题。同样适用于所有Lint
警告。