1
如何在用戶編寫時在EditText文本上應用跨度?Android EditText:如何在撰寫時應用跨度?
例如,用戶在撰寫時已激活「粗體」,因此從此之後的每個字符輸入應該是粗體。
我想過如何將文本更改偵聽器添加到EditText並根據用戶撰寫更新文本,但是我想知道是否有更好的方法來完成此操作。
如何在用戶編寫時在EditText文本上應用跨度?Android EditText:如何在撰寫時應用跨度?
例如,用戶在撰寫時已激活「粗體」,因此從此之後的每個字符輸入應該是粗體。
我想過如何將文本更改偵聽器添加到EditText並根據用戶撰寫更新文本,但是我想知道是否有更好的方法來完成此操作。
這個問題已經在評論中得到了回答,但爲了讓它更加永久,我會添加一個更全面的答案。
爲了設置一個跨度(如粗體),無論用戶在哪裏編寫,只需在光標(或選擇)位置的文本上設置跨度。
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);
int start = editText.getSelectionStart();
int end = editText.getSelectionEnd();
int flag = Spannable.SPAN_INCLUSIVE_INCLUSIVE;
editText.getText().setSpan(boldSpan, start, end, flag);
的SPAN_INCLUSIVE_INCLUSIVE
標誌意味着任何文本之前或之後的跨度將被包括在所述跨度,即使文本長度爲0
添加的跨度時加入。
也
見你不需要任何東西:例如設定的3長度大膽跨越,然後將裏面的插入符號並開始鍵入.. – pskink 2014-10-07 18:15:07
@pskink - 但如果沒有文字呢? – user3705007 2014-10-07 18:17:00
提示:嘗試不同的setSpan的標誌 – pskink 2014-10-07 18:21:25