Warnung von InputConnectionWrapper

9

Ich erhalte jedes Mal, wenn ich den Bildschirm ausschalte, wenn meine App sichtbar ist, eine Warnung "InputConnectionWrapper". Ich weiß nicht warum, weil ich InputConnection nicht verwende.

Hier ist der LogCat-Ausgang.

%Vor%     
Leandros 07.09.2012, 12:52
quelle

3 Antworten

0

denke schon zu spät, um zu helfen, aber es ist in meinem Fall das Problem, dass ich eine " setOnEditorActionListener " auf einem Text bearbeiten - wenn ich diesen Listener entfernen, ist die Warnung weg.

    
Paul 29.02.2016 15:35
quelle
0

In meinem Fall hatte ich im Tastenlayout folgendes: android:textIsSelectable="true" , lösche es einfach und löste das Problem ...

    
KronuZ 08.11.2016 20:13
quelle
-3

Es stellte sich heraus, dass die obige Verwendung von InputConnectionWrapper völlig korrekt war. % Co_de% wird jedoch nie aufgerufen (außer für Spezialfälle), da es andere Methoden gibt, die während der Eingabe verwendet werden. Dies sind hauptsächlich commitText() und setComposingText() .

Es ist jedoch auch wichtig, selten verwendete Methoden wie sendKeyEvent() oder deleteSurroundingText() zu überschreiben, um sicherzustellen, dass alle Benutzereingaben erfasst werden, da ich auf ein ähnliches Problem gestoßen bin.

Meine Situation: Ich habe eine commitText() Ansicht, in die der Benutzer hineintippt. Der EditText wird gelöscht, wenn der Benutzer eine Schaltfläche drückt. Viele inaktive EditText -Einträge strömen aus, wenn ich den Knopf schnell drücke.

z. InputConnection

Die letzte Zeile in meinem Logcat oben gibt einen guten Hinweis darauf, was passiert. Tatsächlich ist das editText.setText(null); mit Anfragen zum Löschen des Textes überfordert. Ich habe versucht, den Code zu ändern, um nach der Textlänge zu suchen, bevor ich versuche, ihn zu löschen:

%Vor%

Dies hilft, das Problem zu mindern, indem das schnelle Drücken der Taste nicht mehr den Stream von InputConnection warnungen verursacht. Dies führt jedoch immer noch zu Problemen, wenn der Benutzer schnell zwischen Tippen und Drücken der Taste wechselt oder die Taste drückt, wenn die App ausreichend ausgelastet ist.

Glücklicherweise habe ich eine andere Möglichkeit gefunden, den Text zu löschen: IInputConnectionWrapper . Damit bekomme ich keine Warnungen:

%Vor%

Beachten Sie, dass Sie, wenn Sie alle Eingabezustände und nicht nur den Text löschen möchten (Autotext, Autocap, Multitap, Rückgängig), Editable.clear() verwenden können.

%Vor%

Wenn Sie mehr über den Eingangsverbindungs-Wrapper wissen möchten, besuchen Sie bitte den folgenden Link.

Ссылка

    
Sethu 27.03.2014 12:35
quelle

Tags und Links