如何在 android studio 中制作一个使文本加粗的菜单项
How do you make a menuitem in android studio that makes text bold
我目前正在尝试在我的应用程序中创建菜单项,以便在按下时使编辑文本的突出显示文本变为粗体。目前,该按钮有效,但每次按下该按钮时都会删除之前的粗体文本。
将文本加粗的代码。
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
}
因此,如果文本当前 像这样
我想加粗 'the text' 以及 'like this' 它将更改为:
所以如果 文本 当前是这样的
而不是:
所以如果 文本 是 目前是这样的
我知道这可能是因为我每次单击按钮时都会创建一个新的 SpannableStringBuilder,但我正在努力寻找解决该问题的方法 - 我们将不胜感激。
直接在editText.text
上调用setSpan
,而不是每次都创建一个新的SpannableStringBuilder
fun makeTextBold(editText: EditText) {
val wholeText = editText.text
val start = editText.selectionStart
val end = editText.selectionEnd
wholeText.setSpan(StyleSpan(Typeface.BOLD),start,end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
}
我目前正在尝试在我的应用程序中创建菜单项,以便在按下时使编辑文本的突出显示文本变为粗体。目前,该按钮有效,但每次按下该按钮时都会删除之前的粗体文本。
将文本加粗的代码。
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
}
因此,如果文本当前 像这样
我想加粗 'the text' 以及 'like this' 它将更改为:
所以如果 文本 当前是这样的
而不是:
所以如果 文本 是 目前是这样的
我知道这可能是因为我每次单击按钮时都会创建一个新的 SpannableStringBuilder,但我正在努力寻找解决该问题的方法 - 我们将不胜感激。
直接在editText.text
上调用setSpan
,而不是每次都创建一个新的SpannableStringBuilder
fun makeTextBold(editText: EditText) {
val wholeText = editText.text
val start = editText.selectionStart
val end = editText.selectionEnd
wholeText.setSpan(StyleSpan(Typeface.BOLD),start,end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
}