Everytime Edittext onAfterTextChange-Methode, ich überprüfe, ob eine spezielle Zeichenfolge (die von der Variablen der Funktionsliste stammt) eingegeben wird, ändern Sie dann die spezielle Farbe der Zeichenfolge. Code ist unterAndroid Edittext Spannable Problem
for(String s:functionList)
{
final Pattern p = Pattern.compile(s);
final Matcher matcher = p.matcher(inputStr);
while(matcher.find())
{
//if(matcher.end() - matcher.start()== s.length())
inputStr.setSpan(new ForegroundColorSpan(Color.parseColor(highlightColor)),
matcher.start(), matcher.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
Der Grund, warum ich nicht Html.FromHtml Methode verwende, ist; es zwingt mich, setText Methode zu verwenden, die Cursorposition ändert und da mein edittext auch von den Knöpfen geändert wird (Tastenaufruf settext) nicht nur softkeyboard, diese settext Methode ruiniert Cursorposition, weil Knopf die Cursorposition zu 0 setzt, SELBST ES IST NICHT! !!! also kann ich nicht etwas in der mitte mit softkeyboard hinzufügen (wenn ich versuche hinzuzufügen, cursorposition ist immer auf 0 gesetzt). Deshalb muss ich spannbar machen.
Wie dem auch sei, mein Problem ist, zum Beispiel einer meiner Spezialtext "log" .. wenn i Eingang log es funktioniert gut (log), wenn append Protokoll mit Leerzeichen (log log) es funktioniert gut wieder , aber wenn ich g aus dem zweiten Protokoll entferne, ist die erste Log-Farbe auch weg !!! (log lo), was nicht passieren darf. Denken Sie dicke Protokolle, wie es gefärbt ist ...
Warum passiert es?
scheint, dass Ihre Spannweite wie (in HTML-ähnliche Syntax) aussieht: log log – pskink
Wenn i setText Cursor Position ist weg die Null bis Benutzereingaben mit Softwaretastatur. Sie können auf beide Arten eingeben. Html = setText –