2017-03-27 2 views
1

Je veux définir plusieurs couleurs sur mon textView et il a beaucoup d'exemple sur le net, mais cela ne fonctionne pas pour moi: ((( voici mon code:android - SpannableStringBuilder ne fonctionne pas pour mor que 2 phrase

public class MainActivity extends Activity { 

ImageView profile_picture; 
TextView ageTxt; 
Bitmap bitmap; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main_activity); 

    ageTxt = (TextView) findViewById(R.id.age); 
    ageTxt.setText(setAgeText("3" , "11" , "27")); 
} 

private SpannableStringBuilder setAgeText(String year , String month , String day) 
{ 
    SpannableStringBuilder builder = new SpannableStringBuilder(); 
    ForegroundColorSpan numColor = new ForegroundColorSpan(Color.rgb(103, 6, 143)); 
    ForegroundColorSpan textColor = new ForegroundColorSpan(Color.rgb(2, 104, 121)); 

    builder.append(setColoredSpan(numColor , year)); 
    builder.append(setColoredSpan(textColor , " سال و ")); 
    builder.append(setColoredSpan(numColor ,month)); 
    builder.append(setColoredSpan(textColor ," ماه و ")); 
    builder.append(setColoredSpan(numColor ,day)); 
    builder.append(setColoredSpan(textColor ," روز")); 
    return builder; 
} 

private SpannableString setColoredSpan(ForegroundColorSpan color , String string) 
{ 
    SpannableString spanStr = new SpannableString (string); 
    spanStr.setSpan(color , 0 , spanStr.length() , 0); 
    return spanStr; 
} 

} 

et voici mon résultat:

enter image description here

où est mon erreur ???

Répondre

0

Je ne sais pas pourquoi mais quand supprimer ForegroundColorSpan objets et utiliser new ForegroundColorSpan chaque fois en appelant setColoredSpan() textView afficher les Spans dans le droit chemin.

builder.append(setColoredSpan(new ForegroundColorSpan(Color.rgb(103, 6, 143)) , year)); 
    builder.append(setColoredSpan(new ForegroundColorSpan(Color.rgb(2, 104, 121)) , " سال و ")); 
    builder.append(setColoredSpan(new ForegroundColorSpan(Color.rgb(103, 6, 143)) ,month)); 
    builder.append(setColoredSpan(new ForegroundColorSpan(Color.rgb(2, 104, 121)) ," ماه و ")); 
    builder.append(setColoredSpan(new ForegroundColorSpan(Color.rgb(103, 6, 143)) ,day)); 
    builder.append(setColoredSpan(new ForegroundColorSpan(Color.rgb(2, 104, 121)) ," روز"));