2013-02-12 19 views
29
Tweet o = tweets.get(position); 

TextView tt = (TextView) v.findViewById(R.id.toptext); 
//TextView bt = (TextView) v.findViewById(R.id.bottomtext);   

EditText bt =(EditText)findViewById(R.id.bottomtext); 
bt.setText(o.author); 
Spannable spn = (Spannable) bt.getText(); 
spn.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC) 
, 0, 100, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

//bt.setText(o.author);  
tt.setText(o.content); 

Ustawiam dane Twittera w mojej aplikacji Android. Chcę zrobić czcionkę pogrubioną i pochyłą za pomocą Spannable, ale to nie działa, dając błąd. Jak mogę to zrobić?Spannable na Androidzie dla textView

+0

to daje zatrzymał nieoczekiwanie błąd. normalnie działa kod, ale chcę, aby czcionka była pogrubiona. ten błąd. – baran

+0

pls po wyjściu LogCat z wyjątkiem. Najprawdopodobniej próbujesz zastosować span poza końcem tekstu - użyj rzeczywistej długości zamiast 100 – Asahi

+0

ta metoda może być pomocna https://stackoverflow.com/a/44255840/3496570 – Nepster

Odpowiedz

69

Chcę, aby czcionka pogrubienie i kursywa z spannable

za to u będzie musiał dokonać o.content tekst jako SpannableString następnie ustawić go do TextView jak:

SpannableString spannablecontent=new SpannableString(o.content.toString()); 
spannablecontent.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 
         0,spannablecontent.length(), 0); 
// set Text here 
tt.setText(spannablecontent); 

EDIT : można również użyć pliku Html.fromHtml do pisania pogrubieniem i kursywą w widoku tekstowym jako:

tt.setText(Html.fromHtml("<strong><em>"+o.content+"</em></strong>")); 
+0

spannablecontent.setSpan (new StyleSpan (android. graphics.Typeface.BOLD_ITALIC), 0, spannablecontent.length(), 0); – baran

+0

Rozwiązuję moje sondy thlks – baran

+2

@baran: można również użyć 'Html.fromHtml' do pisania pogrubieniem i kursywą –

1

Prosty sposób na stworzenie spannable tekst bold i italic aby ustawić w swojej TextView jest przy użyciu metody Html.fromHtml():

i wykorzystaniem elementów html <b> i <i>

myTextView.setText(Html.fromHtml("<b><i>my text bold and italic!</i></b>")); 

lub elementów html <strong> i <em>

myTextView.setText(Html.fromHtml("<strong><em>my text bold and italic!</em></strong>")); 
+0

Dlaczego -1? Jakiegokolwiek powodu. – Jorgesys