Android TextView在显示字符串资源时引发设计器错误

Android TextView在显示字符串资源时引发设计器错误,android,embedded-resource,Android,Embedded Resource,在Eclipse中使用默认布局的新Android项目时,我发现了一个行为,我确信它是有文档记录的。。。某处。。。但我不知道在哪里 当strings.xml“hello”资源包含如下所示的字符串时: <string name="hello" formatted="false">@BrandingName: Branding phrase ending with @ </string> <TextView android:la

在Eclipse中使用默认布局的新Android项目时,我发现了一个行为,我确信它是有文档记录的。。。某处。。。但我不知道在哪里

当strings.xml“hello”资源包含如下所示的字符串时:

    <string name="hello" 
    formatted="false">@BrandingName: Branding phrase ending with @
    </string>
    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />
<string name="hello"><![CDATA[ @BrandingName: Branding phrase ending with @ ]]></string>
@BrandingName:以结尾的品牌短语@
Eclipse设计器抛出ArrayIndexOutOfBounds来解析资源值。我猜这是因为它不知道如何逃离“@BrandingName:”的某些部分,对吗?使用文本视图正确显示此内容的方法是什么

作为参考,TextView节点如下所示:

    <string name="hello" 
    formatted="false">@BrandingName: Branding phrase ending with @
    </string>
    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />
<string name="hello"><![CDATA[ @BrandingName: Branding phrase ending with @ ]]></string>

尝试使用实体而不是“@”-@

此外,如果您想为字符串设置格式,可以使用如下CDATA:

    <string name="hello" 
    formatted="false">@BrandingName: Branding phrase ending with @
    </string>
    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />
<string name="hello"><![CDATA[ @BrandingName: Branding phrase ending with @ ]]></string>


用“@”启动字符串资源将导致设计器出错。前导空格将防止该错误。前导空格似乎不会在文本视图中呈现。

@;BrandingName:以@结尾的品牌短语;产生相同的异常。只要@前面有一个空格,CDATA的公式就有效。显然,以@开始字符串资源时,会尝试将该资源解析为一个间接寻址…+1示例使我非常接近于发现前面的-@bug(至少它看起来像一个bug)