如何在textview中更改字符串的某些部分的颜色,值来自json。我正在使用Spannable类和通过html,但它不会被更改。
if(jobject.has("posts")){
JSONArray ar= jobject.getJSONArray("posts");
String value=""+ar.length();
Profile.this.post.setText(value);
for(int i=0;i<ar.length();i++){
JSONObject a= ar.getJSONObject(i);
Pojo_profile po= new Pojo_profile();
// po.setUsername();
String blue = object.getString("user_login");
po.setData(Html.fromHtml("<font color='#FF0000'>"+blue+"</font>")+" "+a.getString("text_post"));
profile.add(po);
}
答案 0 :(得分:2)
使用跨度。
示例:
final SpannableStringBuilder sb = new SpannableStringBuilder("your text here");
// Span to set text color to some RGB value
final ForegroundColorSpan fcs = new ForegroundColorSpan(Color.rgb(158, 158, 158));
// Span to make text bold
final StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD);
// Set the text color for first 4 characters
sb.setSpan(fcs, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
// make them also bold
sb.setSpan(bss, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
yourTextView.setText(sb);
答案 1 :(得分:0)
textView.setText(Html.fromHtml("*your html text*"));
仅在设置文字时致电Html.fromHtml
。
答案 2 :(得分:0)
AS Per您的问题表明您需要在单个textView上设置两个或更多文本颜色,然后以下行应该工作
textView.setText(Html.fromHtml("blue" +"<font color=\"#000099\">" + a.getString("text_post") + "</font>"));
答案 3 :(得分:0)
在 SDK&gt; = 14
中使用 setAllCaps false if (Build.VERSION.SDK_INT >= 14) {
textView.setAllCaps(false);
}
然后使用
textView.setText(Html.fromHtml("*your html text*"));