Android编辑文本斜体问题

时间:2017-06-11 19:55:06

标签: java android

我正在尝试构建一个功能,用户可以在编辑文本中选择文本,并通过单击小工具栏中的按钮使文本为斜体或粗体。我在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中丢失了第一个单词的样式。

我该如何解决这个问题?

1 个答案:

答案 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来表示粗体和斜体。 它对我有用。