溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

string.xml字符串的格式化和樣式(Formatting and Styling)

發(fā)布時(shí)間:2020-06-27 18:46:18 來源:網(wǎng)絡(luò) 閱讀:2349 作者:孫伯符 欄目:開發(fā)技術(shù)

string.xml是一個(gè)字符串資源,為程序提供了可格式化和可選樣式的字符串。

一般的字符串定義:

  1. <string name="hello_kitty">Hello kitty</string> 

資源引用

在xml中:@string/hello_kitty

在java中:R.string.hello_kitty

一、當(dāng)字符串有引號時(shí)

  1. <string name="good_example">"This'll work"</string> 
  2. <string name="good_example_2">This\'ll also work</string> 
  3. <string name="bad_example">This doesn't work</string> 
  4. <string name="bad_example_2">XML encodings don&apos;t work</string> 

如果字符串中有單引號,則要將整個(gè)字符串用雙引號包起來,或者使用轉(zhuǎn)義\'

二、當(dāng)字符串需要用String.format格式化時(shí)

  1. <string name="hello_kitty">Hello %1$s kitty</string> 

%1$s : 1表示占第一位,s表示字符串,d表示數(shù)字

java代碼:

  1. String format=String.format(R.string.hello_kitty,"your"); 

三、當(dāng)字符串有html標(biāo)記時(shí)

<b>kitty</b> 加粗

  1. <string name="hello_kitty">Hello <b>kitty</b></string> 

java代碼:

  1. Resources res = getResources(); 
  2. String kitty = res.getString(R.string.hello_kitty); 
  3. //textView.setText(kitty); 

四、當(dāng)字符串又需要格式化,又有樣式的時(shí)候

  1. <string name="hello_kitty"><i>Hello</i><b> %1$s kitty</b>!</string> 

上面是錯(cuò)誤的寫法,因?yàn)閰⒖荚囊欢卧?/p>

In this formatted string, a <b> element is added. Notice that the opening bracket is HTML-escaped, using the&lt; notation.

所以我們需要這么寫

  1. <string name="hello_kitty">&lt;i>Hello&lt;/i>&lt;b> %1$s kitty&lt;/b>!</string> 

java代碼:

  1. String format = String.format(res.getString(R.string.hello_kitty), 
  2.                 "your"); 
  3.         Spanned html = Html.fromHtml(format); 
  4. textView.setText(html); 

Html.fromHtml()會(huì)解析所有html標(biāo)記,但如果String.format()的參數(shù)中有html標(biāo)記但又不想被Html解析

比如 <u>your</u>,就要對參數(shù)進(jìn)行編碼

java代碼:

  1. Resources res = getResources(); 
  2. String encode = TextUtils.htmlEncode("<u>your</u>"); 
  3. String format = String.format(res.getString(R.string.hello_kitty), 
  4.                 encode); 
  5. Spanned html = Html.fromHtml(format); 
  6. tv1.setText(html); 

string.xml字符串的格式化和樣式(Formatting and Styling)

tip:

  1. Spanned html = Html.fromHtml(format); 
  2. String htmlStr = Html.fromHtml(format).toString(); 
  3.          
  4. //有樣式 
  5. tv1.setText(html); 
  6. //無樣式 
  7. tv2.setText(htmlStr); 

string.xml字符串的格式化和樣式(Formatting and Styling)

 

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI