【发布时间】:2019-04-01 22:52:31
【问题描述】:
我可以将文本从正常更改为粗体,但我无法从粗体更改为正常。我不知道我错过了什么。
boldtext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sStart = bodyText.getSelectionStart();
sEnd = bodyText.getSelectionEnd();
Spannable s = bodyText.getText();
if (bodyText.getTypeface().getStyle()==Typeface.NORMAL ) {
s.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), sStart, sEnd, 0);
isBold = true;
}
else {
for (CharacterStyle span : s.getSpans(sStart, sEnd, CharacterStyle.class)) {
if (span instanceof StyleSpan && ((StyleSpan)span).getStyle() == Typeface.BOLD)
s.removeSpan(span);
isBold = false;
}
}
}
});
【问题讨论】:
-
没有转到其他部分吗?
-
即使文本是粗体,也只能一次又一次地转到 if 部分
-
我认为它与 bodyText 相关,但无法弄清楚如何设置 s.getTypeface()?
-
boldtext 和 bodyText 有什么区别?
-
根据代码,您需要再次单击文本视图以删除粗体。您是否尝试使用焦点更改侦听器并在文本视图失去焦点时移除焦点?