Android XML中无法设置按钮文本为"<<<"的解决方法咨询
解决XML中按钮文本使用"<<<"出现解析错误的问题
这个问题很常见——XML里的<是保留特殊字符,用来标记标签的起始,直接写<<<会让XML解析器误以为你要开始一个新标签,自然就抛出"not well-formed (invalid token)"错误了。下面给你几种可行的解决办法:
方法1:使用XML实体转义
XML里专门定义了特殊字符的转义实体,<对应的转义是<。你只需要把文本里的每个<替换成<就行:
直接在布局XML中使用:
<Button android:id="@+id/test" android:text="<<<" android:layout_width="wrap_content" android:layout_height="match_parent" />
在strings.xml中定义:
<string name="abc"><<<</string>
注意这里不要加多余的空格,你之前的strings.xml里<<<前后有空格,不仅会影响显示效果,也可能干扰解析逻辑(虽然核心问题是未转义)。
方法2:用CDATA包裹文本
如果你的文本里有多个特殊字符(比如同时包含<、>、&),用CDATA块会更省心——CDATA里的内容会被XML解析器当作纯文本处理,不会被当作标签解析:
在strings.xml里这么写:
<string name="abc"><![CDATA[<<<]]></string>
之后在布局里正常引用这个字符串即可:android:text="@string/abc"
方法3:使用Unicode编码
每个字符都有对应的Unicode编码,<的Unicode编码是\u003C,你也可以用编码来表示目标文本:
<string name="abc">\u003C\u003C\u003C</string>
这三种方法都能解决你的问题,个人推荐第一种(转义实体),因为它是XML的标准写法,可读性也最好~
内容的提问来源于stack exchange,提问作者Pam
相关产品推荐
相关产品推荐

