我试图找到一个答案,用于将其他文本未选中的文本取消选中,但正如图中所示取消该行中的整个文本。我几次发布了这个问题,但没有人能为我提供正确的答案。我取消了“我正在使用”一词的含义,但是当点击时却使整个行变粗体。请帮忙。
这是我正在使用的代码。
private void boldText(){
int selectionStartb = texto.getSelectionStart();
int selectionEndb = texto.getSelectionEnd();
if (selectionStartb > selectionEndb) {
int temp = selectionEndb;
selectionEndb = selectionStartb;
selectionStartb = temp;
}
if (selectionEndb > selectionStartb) {
Spannable str = texto.getText();
boolean BL = false;
StyleSpan[] styleSpans;
styleSpans = str.getSpans(selectionStartb, selectionEndb, StyleSpan.class);
// If the selected text-part already has BOLD style on it, then
// we need to disable it
for (int i = 0; i < styleSpans.length; i++) {
if (styleSpans[i].getStyle() == android.graphics.Typeface.BOLD) {
str.removeSpan(styleSpans[i]);
BL = true;
}
}
// Else we set BOLD style on it
if (!BL) {
str.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), selectionStartb, selectionEndb,
Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
}
}
}