1

TextView我需要在以 @ 符号开头的 Twitter 句柄中显示一个字符串。当我将字符串放入我的 strings.xml 时,它不喜欢字符串开头的 @ 并给出错误:

error: Error: No resource type specified (at 'twitter_handle' with value '@twitter_handle').

其中包含使用字符串资源的 layout.xmlTextView给出了错误:

The following classes could not be found:
- TextView (Change to android.widget.TextView, Fix Build Path, Edit XML)

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

&#64如果我使用或转义 @ 符号\u0040,则该错误在 strings.xml 中消失,但我仍然在 layout.xml 中收到错误。

有没有办法TextView在 layout.xml 中使用以 @ 符号开头的字符串?

字符串.xml:

...
<string name="twitter_handle">@twitter_handle</string>
...

布局.xml:

...
<TextView
    ...
    android:text="@string/twitter_handle"
    ... />
...

毫无疑问,问题与前导 @ 暗示对资源的引用有关,但不应该考虑转义 @ 符号并正常工作吗?

更新:这个问题被发现是 ADT Eclipse 插件中的一个错误。安装最近发布的最新版本修复了该问题,并且在 strings.xml 中转义 @ 不再导致错误。

4

3 回答 3

2

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

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

 String twitter = getString(R.id.twitter);
 textView.setText(twitter);

编辑2:试试这个而不是@符号:&#64;。这是标志的html代码。

于 2013-01-24T00:06:04.803 回答
0

你可以试试这个。在 string.xml 中创建一个字符串并在您的布局代码中使用它。

<string name="example"><Data>@twitter</Data></string>

@twitter 是你的字符串的内容

于 2013-01-24T00:41:54.917 回答
0

这段代码对我来说很好,刚刚测试过。请注意仅在 strings.xml 上的反斜杠

字符串.xml:

...
<string name="twitter_handle">\@twitter_handle</string>
...

布局.xml:

...
<TextView
    ...
    android:text="@string/twitter_handle"
    ... />
...

@twitter_handle在文本视图中显示

于 2013-01-24T01:50:06.467 回答