2010-12-20 117 views
28

我想知道是否可以在/res/values/strings.xml之內放置XML?我問這是因爲我正在檢查我的應用程序的XML數據文件,如果它尚不存在,那麼它會從默認內容中創建它,並將其作爲字符串資源包含在內。Android字符串資源中的XML?

當使用GUI編輯字符串時,Eclipse會嘗試將小於和大於標記更改爲其對應的HTML實體。日食是否正確?因爲我認爲它會以HTML實體的形式寫入我的文件。我可以使用getText()而不是getString()將實體轉換回標記嗎?

感謝您的任何建議,你可以給。

回答

58

是的,你可以只使用CDATA

<string name="stringName1"><![CDATA[<html>bla</html>]]></string>

+2

是的,這正是我所需要的,我知道它似乎有點不正統,使用XML的字符串資源,但我剛剛開始,我只寫了20左右的字符。 – Olical 2010-12-20 13:39:53

2

它顯然不工作,除非你在那裏轉義字符,如<或>或&。

如果你編碼XML,它應該可以正常工作,但可能不是最好的方法。我更喜歡二進制資源。


對於投入string.xml,你可以編碼使用

String encoded = URLEncoder.encode(xml); 

和解碼是相反的。

對於二進制文件,您將其放在RAW文件夾中,並獲取二進制流並將其轉爲字符串並加載。

+0

所以?而通過二進制資源,這是否是您複製創建數據文件的原始文件夾中的東西? – Olical 2010-12-20 13:34:45

+0

請參閱我的更新。 – Aliostad 2010-12-20 13:39:16

1

我已經做了這種方式:

把你的strings.xml

<string name="my_string"><![CDATA[Your long text here]]></string> 

如何使用:

<TextView 
    android:id="@+id/textView" 
    android:text="@string/my_string" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

書寫時,``<例如,應轉換爲`<`完成