在文本中使用@符号表示android中的字符串资源

时间:2013-06-18 15:59:16

标签: android

我想在android中的文本字段的开头插入一个“@”符号。我已在字符串资源文件中指定为

<string name="email_ext">@xyz.com</string>

但它会抛出一个编译器错误 - “没有指定资源类型(在'email_ext',值为'@ xyz.com')。有没有办法解决这个问题?我试图用setter设置它,但是我有不同语言的不同资源文件。提前感谢。

3 个答案:

答案 0 :(得分:4)

\

之前添加@
<string name="email_ext">\@xyz.com</string>

原因是@是Android资源上任何引用的开放符号。如果您定义了颜色,可以使用@color/white指向颜色。因此,编译器尝试分配名为xyz.com的资源,但它实际上没有定义类型(例如drawable,layout,id,string等)。因此编译错误。

事实上,有一个更清洁的版本(找到here):

<string name="email_ext">"@xyz.com"</string>

使用引号看起来不那么hacky

答案 1 :(得分:3)

添加\

<string name="email_ext">\@xyz.com</string>

答案 2 :(得分:0)

我建议您使用\ uxxxx作为特殊字符,这是unicodes http://jrgraphix.net/research/unicode_blocks.php?block=0表,在您的情况下,您可以使用\ u0040表示@symbol:

<string name="email_ext">\u0040xyz.com</string>

问候!