在TextView的开头显示@

时间:2013-01-24 00:03:57

标签: android android-layout textview

我需要在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)

如果@符号不在文本的开头,而是在字符串中的任何其他位置,则没有错误。

如果我使用&#64\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中转义@不再导致错误。

3 个答案:

答案 0 :(得分:2)

使用前导斜杠转义它,例如:<string name="test">\@twitter</string>

编辑:我应该读过。您可以通过从String获取字符串并将其设置为TextView

,以编程方式将TextView分配给 String twitter = getString(R.id.twitter); textView.setText(twitter);
&#64;

编辑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