2

当我在教程的帮助下工作时,我在 textview android:text-"@string/hello" 中发现了这个,它显示了一些错误。

然后我浏览了图形视图并右键单击组件并输入文本。然后该错误将删除并通知我

**Hardcoded string hello should use String resources**
4

3 回答 3

5

在 android 中,“@string/”指的是包资源管理器中Project>res>values>位置中的string.xml 。

String.xml 包含一个 xml 文件,它引用一个带有 id 的字符串。例如:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World</string>
    <string name="app_name">My app</string>
</resources>

这里 name="hello" 是 id & "Hello World" 是它的值。当使用@string/hello 时,将显示该值。

“@drawable/”的情况类似。它将参考使用的图像。还有很多。

您可以以编程方式在文本视图中设置文本。例如:

TextView tv = (TextView)findViewById(R.id.text1);     //text1 is the id u provide in xml file
tv.setText("Hello World");

我希望它对你有所帮助。

于 2012-04-23T11:00:56.567 回答
1

@string/hello只需注意 Android 将字符串加载到位于 /values 目录 (strings.xml) 中的 XML 文件中。

hello是该name="hello"XML 中指定的字符串的 ID。

于 2012-04-23T10:40:32.470 回答
0

Android Studio 非常不稳定。以前,它会在string.xml. 因此,使用以前版本的教程会让初学者陷入困境。

string.xml工作原理

Android Studio 希望您将所有文本写入文件中的一个位置string.xml。在所有其他文件中,您只需输入缩写即可。例如

android:text="@string/Hello_world"

表示Hello_worldstring.xml文件中找到缩写并将其替换为预期的文本。

string.xml,对应的应写为:

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

那应该做的工作!

可以只写android:text="Hello world!"(这就是硬编码)。如果您打算成为一名 android 开发人员,那么您将无法最大限度地提高效率。

为什么?string.xml

将所有文本放在一个文件中可以简化很多事情。如果需要,喜欢翻译,并且易于更改。但是,您应该选择有意义的缩写!

于 2016-05-21T02:11:49.200 回答