2011-06-23 64 views
7

如何在條目中獲得紅色星號,以便您可以在文本末尾顯示該星號以指示其必填字段,如:輸入您的姓名*(星號將是紅色的)。或者,就此而言,文本中的任何地方。如何在<string>條目中獲得紅色星號

回答

31

你不能通過xml字符串資源來做到這一點。這隻能通過代碼完成。爲此,您需要使用SpannableStringBuilderForegroundColorSpan


這裏是小例子:

TextView text = (TextView)findViewById(R.id.text); 

String simple = "Enter your name "; 
String colored = "*"; 
SpannableStringBuilder builder = new SpannableStringBuilder(); 

builder.append(simple); 
int start = builder.length(); 
builder.append(colored); 
int end = builder.length(); 

builder.setSpan(new ForegroundColorSpan(Color.RED), start, end, 
       Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

text.setText(builder); 

enter image description here

+0

星號這正是工作需要:謝謝! 堆棧溢出過程中的一個相關問題一般是: 我只能將點數從1增加到2,答案是:你必須有一定的特權才能獎勵更多的點數嗎? – charlest

+0

不,沒有人可以爲每個問題/答案提供多於一個點的獎勵。像投票一樣對待它:你要麼投票贊成,要麼反對。如果您對如何使用stackoverflow有疑問,請訪問meta:http://meta.stackoverflow.com/; – inazaruk

+1

絕妙的把戲。 Android平臺非常方便。 –

4

參見this關於如何風格一個TextView的部分的例子。這裏是你如何做一個紅色的星號。

EditText editTxt = new EditText(this); 
editTxt.setText("Testing asterisk *"); 
Spannable str = editTxt.getTxt(); 
int loc = editTxt.getTxt().toString().indexOf("*"); 
str.setSpan(new ForegroundColorSpan(Color.RED), loc, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); 
1

替代用於顯示Android中的TextView

txtvw2.setText(Html.fromHtml("<sup>*</sup>"+"enter you name"));