我目前正在尝试在我的应用程序中创建 menuitem,当它被按下时,它会使 edittext 的突出显示文本变为粗体。目前,该按钮有效,但每次按下该按钮时它都会删除先前的粗体文本。
使文本加粗的代码。
fun makeTextBold(editText: EditText) {
val wholeText = editText.text.toString()
val start = editText.selectionStart
val end = editText.selectionEnd
val ssb = SpannableStringBuilder(wholeText)
ssb.setSpan(StyleSpan(Typeface.BOLD),start,end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
editText.text = ssb
}
菜单项的代码。
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.action_bold -> makeTextBold(characterNotesEditText)
}
return true
}
所以如果文本当前是这样的
我想加粗“文本”和“像这样”,它会变成:
所以如果文本当前是这样的
代替:
所以如果文本当前是这样的
我知道这可能是因为我每次单击按钮时都会创建一个新的 SpannableStringBuilder ,但我正在努力寻找解决该问题的方法 - 任何帮助将不胜感激。