2013-02-12 39 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); 

Tôi đang đặt dữ liệu twitter trong ứng dụng Android của mình. Tôi muốn làm cho font chữ đậm và nghiêng bằng Spannable nhưng nó không hoạt động, đưa ra một lỗi. Tôi làm nó như thế nào?có thể phát trên Android cho textView

+0

nó cho đã dừng đột ngột lỗi. thường làm việc mã nhưng tôi muốn làm cho phông chữ đậm. Nó đã sửa lỗi này. – baran

+0

xin đăng xuất LogCat với ngoại lệ. Có thể bạn đang cố gắng áp dụng khoảng thời gian vượt quá kết thúc văn bản - sử dụng độ dài thực tế thay vì 100 – Asahi

+0

phương pháp này có thể hữu ích https://stackoverflow.com/a/44255840/3496570 – Nepster

Trả lời

69

Tôi muốn làm cho phông chữ đậm và nghiêng với spannable

cho điều này u sẽ cần phải thực hiện o.content văn bản như SpannableString sau đó đặt nó vào TextView như:

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 : bạn cũng có thể sử dụng Html.fromHtml để tạo văn bản in đậm và in nghiêng trong dạng văn bản dưới dạng:

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

Giải quyết các câu hỏi của tôi – baran

+2

@baran: bạn cũng có thể sử dụng 'Html.fromHtml' để tạo văn bản in đậm và in nghiêng –

1

Cách đơn giản để tạo ra một văn bản spannablebolditalic để đặt vào TextView bạn đang sử dụng phương pháp Html.fromHtml():

và sử dụng các yếu tố html <b><i>

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

hoặc các yếu tố html <strong><em>

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

Tại sao -1? Bất kỳ lý do gì. – Jorgesys

Các vấn đề liên quan