【发布时间】:2020-05-25 10:40:13
【问题描述】:
我正在使用 editText 和 buttons 并且布局包含 四个 按钮
- btnBold
- btn斜体
- btnStrike
- btn下划线
还有一个editTextetDescription
现在,我在这里通过单击按钮来设置 editText's selected text 的样式
使用此代码
CharacterStyle styleBold, styleItalic, styleUnderline, styleStrike;
styleBold = new StyleSpan(Typeface.BOLD);
styleItalic = new StyleSpan(Typeface.ITALIC);
styleUnderline = new UnderlineSpan();
styleStrike = new StrikethroughSpan();
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btnItalic:
makeIt(styleItalic);
break;
case R.id.btnBold:
makeIt(styleBold);
break;
case R.id.btnUnderline:
makeIt(styleUnderline);
break;
case R.id.btnStrike:
makeIt(styleStrike);
break;
}
}
private void makeIt(CharacterStyle characterStyle) {
String wholeTextUnder = etDescription.getText().toString();
int startu = etDescription.getSelectionStart();
int endu = etDescription.getSelectionEnd();
SpannableStringBuilder sbu = new SpannableStringBuilder(wholeTextUnder);
sbu.setSpan(characterStyle, startu, endu, 0);
etDescription.setText(sbu);
}
它给了我整个editText single style
就像当我选择文本 1-10 然后将其设置为 bold 时它可以工作!
但是,当我选择其他文本时,然后将其设置为其他文本,例如 italic、strike、underline,然后之前的文本变为正常,新的更改成功。
我希望之前的文字也保持不变
等待答复!
提前致谢!!
编码愉快!
【问题讨论】:
标签: java android android-edittext styles