我正在尝试构建一个功能,用户可以在编辑文本中选择文本,并通过单击小工具栏中的按钮使文本为斜体或粗体。我在android studio中写了一些代码,但是有一个问题。
public void bold(EditText text){
int start = text.getSelectionStart();
int end = text.getSelectionEnd();
CharacterStyle style = new StyleSpan(Typeface.BOLD);
SpannableStringBuilder sb = new SpannableStringBuilder(text.getText().toString());
sb.setSpan(style, start, end, 0);
text.setText(sb);
}
当用户点击粗体按钮时,它会调用 bold()
功能并粗体显示所选文本。但如果我更改选择并单击斜体,则斜体显示所选文本但删除粗体我已经应用于编辑文本的样式。
例如
exampleone exampletwo(粗体文字)
但如果点击选择exampletwo并单击斜体
它变成了
exampleone exampletwo
我在Edittext中丢失了第一个单词的样式。
我该如何解决这个问题?
答案 0 :(得分:-1)
SpannableStringBuilder ssb = newSpannableStringBuilder(bodyView.getText());
cs = new StyleSpan(Typeface.BOLD);
ssb.setSpan(cs, start, end, 1);
cs = new StyleSpan(Typeface.ITALIC);
ssb.setSpan(cs, start, end, 1);
我认为你应该使用相同的Spannablestringbuilder来表示粗体和斜体。 它对我有用。