1

Ich erstelle benutzerdefinierte Android-Tastatur und ich möchte löschen, um den gesamten Text zu löschen, wenn sie ausgewählt sind.Wie lösche Schlüssel - löschen Sie alle ausgewählten Text bearbeiten in benutzerdefinierten Android-Tastatur

Wenn Text ausgewählt ist, wird die Zwischenablage (Ausschneiden, Kopieren, Einfügen) angezeigt. Wenn in diesem Modus die Löschtaste gedrückt wird, sollten alle gelöscht werden. Derzeit nicht.

P.S sagen mir nicht für einen bestimmten Text bearbeiten, es ist eine benutzerdefinierte Tastatur, es hat keinen Zugriff auf Text zu bearbeiten.

Antwort

1

Ich sehe nicht, warum es nicht geht. In der Tastatur, die ich erstellt habe, sende ich einfach das Delete Key Event und es funktioniert wie ein Zauber. Versuchen Sie Folgendes, wenn die Lösch-/Rücktaste gedrückt wird, während etwas ausgewählt ist.

getCurrentInputConnection().sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_DEL)); 
getCurrentInputConnection().sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP,KeyEvent.KEYCODE_DEL)); 
+0

Wenn ich einen benutzerdefinierten Editor machte, vergaß ich, dass ich das Löschen als 'KeyEvent' behandeln musste. Das macht Sinn, dass ich es auch als Schlüsselereignis aus der anderen Richtung senden muss. – Suragch

0

Sie können auch sehen, ob die InputConnection den markierten Text mit getSelectedText hat. Löschen Sie es dann, wenn dies der Fall ist (oder löschen Sie das vorangehende Zeichen, wenn dies nicht der Fall ist).

CharSequence selectedText = inputConnection.getSelectedText(0); 
if (TextUtils.isEmpty(selectedText)) { 
    inputConnection.deleteSurroundingText(1, 0); 
} else { 
    inputConnection.commitText("", 1); 
}