2012-01-28 88 views
2

只是一個簡單的問題: 你知道爲什麼我能做到這一點:下劃線TextView的

pnrCode = (TextView)findViewById(R.id.pnr); 
     SpannableString pnrContent = new SpannableString("PNR: "); 
     pnrContent.setSpan(new UnderlineSpan(), 0, pnrContent.length(), 0); 
     pnrCode.setText(pnrContent + BookingSettings.getBookingSegment().substring(0, 6)); 

文本沒有下劃線。

然而,如果我只是做:

pnrCode = (TextView)findViewById(R.id.pnr); 
      SpannableString pnrContent = new SpannableString("PNR: "); 
      pnrContent.setSpan(new UnderlineSpan(), 0, pnrContent.length(), 0); 
      pnrCode.setText(pnrContent); 

的帶下劃線的文字。

我必須創建兩個textview? 你知道另一種解決方案嗎?

任何幫助表示讚賞;)

回答

7

我要創建兩個TextView的?

pnrContent + BookingSettings.getBookingSegment().substring(0, 6)大概是要給你一個String回來,因爲我相信+運營商將雙方轉換爲String對象,然後進行拼接。因此,你將失去你的格式。

而是使用new SpannableString("PNR: "+ BookingSettings.getBookingSegment().substring(0, 6));,並根據需要設置UnderlineSpan的長度。

+0

感謝您的回答! 但實際上,我只想強調「PNR:」!你的解決方案強調整個字符串,不是? – 2012-01-28 17:58:13

+2

要強調「PNR:」,您應該以這種方式僅爲前4個字符設置範圍:pnrContent.setSpan(new UnderlineSpan(),0,4,0); – lexmiir 2012-01-28 18:11:00

+0

謝謝lexmirr,謝謝CommonsWare! – 2012-01-28 18:16:20