2012-09-26 31 views
8

Đây là ví dụ.Làm cách nào để tạo nhiều văn bản có thể chỉnh sửa?

String source = "This is example text"; 
Spannable out = new SpannedString(source); 
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD); 
out.setSpan(boldSpan, 1, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
out.setSpan(boldSpan, 9, 12, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

//someTextView.setText(out); 


Kết quả mong đợi: T hi s là e xam văn bản ple ("hi" & "xam" được tô đậm)
kết quả thực tế:         Đây là e xam ple văn bản (chỉ hoạt động phương thức setSpan mới nhất và in đậm chỉ "xam")


Làm thế nào để tạo nhiều văn bản có thể chỉnh sửa? Có thể không?
Có thể sự cố xảy ra ở Spannable.SPAN_EXCLUSIVE_EXCLUSIVE cờ? Cảm ơn.

Trả lời

20

Tôi nghĩ bạn cần StyleSpan mới cho mỗi loại.

String source = "This is example text"; 
Spannable out = new SpannedString(source); 
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD); 
StyleSpan boldSpan2 = new StyleSpan(Typeface.BOLD); 
out.setSpan(boldSpan, 1, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
out.setSpan(boldSpan2, 9, 12, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

Chưa thử.

+0

Cảm ơn. Nó hoạt động :) – user1523690

+0

Không sao cả. Vui mừng khi nghe nó. :) Chấp nhận câu trả lời xin vui lòng nếu bạn hài lòng với giải pháp của tôi. – MillyMonster

+0

Tôi chưa gặp vấn đề này, tôi chỉ vui vẻ nhìn qua các câu hỏi .. Nhưng điều này cũng sẽ làm tôi bối rối. – WORMSS

0

Lý do là mỗi văn bản có thể in đậm phải được thể hiện bằng StyleSpan. Lý do của bạn chỉ giống như gán lại một giá trị.

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