我需要在TextView
中显示一个字符串,该字符串以Twitter句柄的@符号开头。当我把字符串放在strings.xml中时,它不喜欢字符串开头的@并给出错误:
error: Error: No resource type specified (at 'twitter_handle' with value '@twitter_handle').
其中包含TextView
的layout.xml使用字符串资源会产生错误:
The following classes could not be found:
- TextView (Change to android.widget.TextView, Fix Build Path, Edit XML)
如果@符号不在文本的开头,而是在字符串中的任何其他位置,则没有错误。
如果我使用@
或\u0040
转义@符号,则错误会在strings.xml中消失,但我仍然会在layout.xml中收到错误。
有没有办法在layout.xml中使用以TextView
中的@符号开头的字符串?
的strings.xml:
...
<string name="twitter_handle">@twitter_handle</string>
...
layout.xml:
...
<TextView
...
android:text="@string/twitter_handle"
... />
...
毫无疑问,这个问题与一个领先的@ @意味着对资源的引用这一事实有关,但是不应该被转义@符号被考虑在内并正常工作?
更新:发现此问题是ADT Eclipse插件中的错误。安装最近发布的最新版本修复了这个问题,并且在strings.xml中转义@不再导致错误。
答案 0 :(得分:2)
使用前导斜杠转义它,例如:<string name="test">\@twitter</string>
编辑:我应该读过。您可以通过从String
获取字符串并将其设置为TextView
TextView
分配给 String twitter = getString(R.id.twitter);
textView.setText(twitter);
@
编辑2:尝试使用此代替@符号:{{1}}。这是标志的HTML代码。
答案 1 :(得分:0)
你可以试试这个。在string.xml中创建一个字符串,并在布局代码中使用它。
<string name="example"><Data>@twitter</Data></string>
@twitter是字符串的内容
答案 2 :(得分:0)
这段代码对我来说很好,只是经过测试。请注意strings.xml上的反斜杠
的strings.xml:
...
<string name="twitter_handle">\@twitter_handle</string>
...
layout.xml:
...
<TextView
...
android:text="@string/twitter_handle"
... />
...
并在textview
中显示为@twitter_handle