2013-12-16 134 views
3

嘿我創建一個機器人的TextView其中包含來自JSON .. 這是不錯,但我想改變文本視圖的一部分的顏色..不知道如何變化的android TextView的顏色

這裏是我的詳情 -

JSONArray jArray= new JSONArray(result); 

for(int i=0; i<jArray.length();i++) 
{ 
JSONObject getjson=jArray.getJSONObject(i); 

s= "Title: "   +getjson.getString("tender_title")+ 
    "\n\nTender id: " +getjson.getString("tender_id")+ 
    "\n\nReference no:\n"+getjson.getString("tender_reference_no")+ 
    "\n\nQuantity: "  +getjson.getString("tender_item_details_quantity"); 

} 

TextView txt=(TextView) findViewById(R.id.textView1); 
txt.setText(s); 

在上面的代碼是fine..that集文本視圖所有的價值,但我想改變的「標題」,「投標ID」色彩,「數量」 etc ..從上面的字符串s請幫忙

+0

什麼字符串包含,黑色,白色,或十六進制顏色值? –

+0

@Arju thanx的回覆..現在這個textview設置爲白色,但我想改變這個文本的一部分爲黃色.. – Brett

+0

@Brett如果你的問題得到解決,你應該選擇最有用的答案作爲一種良好的做法。 –

回答

2

您可以設置文本爲html:

txt.setText(Html.fromHtml("your <font color='#FF0000'>content</font>"); 
1

使用spans

例子:

{ 
    final SpannableStringBuilder sb = new SpannableStringBuilder("your text here"); 
    final ForegroundColorSpan fcs = new ForegroundColorSpan(Color.rgb(158, 158, 158)); 

    // Span to set text color to some RGB value 
    final StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD); 

    // Span to make text bold 
    sb.setSpan(fcs, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); 

    // Set the text color for first 4 characters 
    sb.setSpan(bss, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); 

    // make them also bold 
    yourTextView.setText(sb); 
} 
0

您可以使用跨區也爲。

Spanned sText=Html.fromHtml("<font color="#C3003">Title:</font> " ); 

txt.setText(sText); 
0
Spannable WordtoSpan = new SpannableString(text); 

WordtoSpan.setSpan(new ForegroundColorSpan(Color.WHITE), text.length, (text +  
nextString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

myTextView.setText(WordtoSpan); 
1

下面是具體到你的情況的解決方案:

更新您的代碼如下:

JSONArray jArray= new JSONArray(result); 
Spanned spannedStr = null; 
for(int i=0; i<jArray.length();i++) 
{ 
    JSONObject getjson = jArray.getJSONObject(i); 

    spannedStr = (Spanned) TextUtils.concat(getColorString("Title:"), getjson.getString("tender_title"), "\n\n", 
      getColorString("Tender id:"), getjson.getString("tender_title"), "\n\n", 
      getColorString("Reference no:"), getjson.getString("tender_title"), "\n\n", 
      getColorString("Quantity:"), getjson.getString("tender_title")); 

} 
TextView txt=(TextView) findViewById(R.id.textView1); 
txt.setText(spannedStr); 

在同一個類中定義一個helper方法,並使用它:

private Spanned getColorString(String str) { 
    return Html.fromHtml("<font color='#FFFF00'>" + str + "</font>"); 
} 

取樣輸出:

enter image description here