Dieses Problem ist ziemlich ärgerlich, so Iam es nach unten nach und nach verfolgen, gehen, so dass Sie es verstehen können: -Letztes Zeichen nach der Anwendung von zwei Spannen auf einen ausgewählten Text in EditText nicht gesplitteten wird
Zuerst habe ich wählen Sie das letzte Wort in meinem Text bearbeiten wie folgt: -
so weit, so einfach dann mache ich den Text fett durch einen Knopf (Einstellung einer fett Spanne) klicken wie folgt: -
Die Unterstreichung ist nur die Standardtextkorrektur im Softkeyboard. Dann wählen Sie erneut ich den Text: -
dann, wenn ich es auf die gleiche Weise kursiv (italic Spanne Einstellung per Knopfdruck) bekomme ich diese: -
der letzte Das Zeichen wird unspannt von fett. Dies geschieht nur in dieser speziellen Situation, wenn ich wählen Sie das Wort und das Wort ist an der Ende des Editiertext.
Auch fand ich heraus, dass dieses Problem tritt auf, wenn die Spannen für die einzelnen Zeichen gesetzt werden, wenn sein für das ganze Wort kommt es nicht vor (sowohl fett und kursiv): -
//for each char
for (int i = 0; i < token.length(); i++) {//token is the word
SpannableString char = (SpannableString) token.subSequence(i, i + 1);
char.setSpan(new android.text.style.StyleSpan(Typeface.BOLD), 0,
char.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
}
Aber wenn ganze Wortproblem nicht geschieht: -
// for the whole word
token.setSpan(new android.text.style.StyleSpan(Typeface.BOLD), 0,
token.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
}
Aber natürlich kann der Benutzer Spannweiten für einen char so eingestellt, dass das Problem immer noch relevant ist sonst kein Problem, wenn das Wort nicht am Ende des Bearbeitungs Textes ausgewählt ist.