2

Ich entschied mich, eine benutzerdefinierte Tastatur für meine Anwendung zu erstellen. Ich weiß, dass das nicht die beste Idee ist, da es die Benutzerfreundlichkeit beeinträchtigt, deshalb werde ich es einfach in den Voreinstellungen optional machen.Wie fügt man InputMethodService zur Aktivität hinzu?

Nachdem alles in einer Klasse public class CustomKeyboard extends InputMethodService implements KeyboardView.OnKeyboardActionListener getan wurde. Ich habe Mühe, es als softInputMethod hinzuzufügen. Ich habe versucht, mit der InputMethodManager, aber ich bekomme inkompatible Typen beim Gießen.

Ich fand, dass ich es ohne den Service bekommen kann, aber es ist in hohem Grade unrecommended und ich würde eine ganz neue Implementierung benötigen.

Idealerweise würde ich es für die EditText-Befehlszeile in der App verwenden. Also eine direkte Bindung daran würde auch den Job machen.

Nach dem Verbergen der Systemeingabemethode, wie diesen Eingabedienst der Standarddienst zu machen?

Danke.



P. S. Wenn es einen offensichtlichen einfachen Weg gibt, tut es mir leid, aber ich habe gerade den Übergang zu Android gemacht und lerne immer noch.

Antwort

2

Verwenden Sie android: inputMethod für das Textfeld, in dem Sie die Eingabemethode ändern möchten. Siehe https://developer.android.com/reference/android/widget/TextView.html#attr_android:inputMethod

Sie können keine Standardeingabemethode für das gesamte Gerät festlegen, Sie können sie jedoch Feld für Feld in Ihrer App überschreiben. Das Hinzufügen einer Standardeingabemethode für das Thema Ihrer Aktivität oder Anwendung sollte diese für alle Textansichten in Ihrer App überschreiben.

0

Wie wird dieser Eingabedienst als Standarddienst festgelegt?

Sie nicht. Eingabemethoden sind für das gesamte Gerät, keine einzige EditText. Daher muss sich der Benutzer für die Verwendung der Eingabemethode entscheiden. Zitiert the documentation:

die gewünschten IMEs Nach der Installation kann ein Benutzer auswählen kann, welche von den Systemeinstellungen zu verwenden, und es verwendet, über das gesamte System; Es kann immer nur ein IME aktiviert sein.

+0

Ok, dann kann ich die Auswahl in der App zu tun, sagen in den Einstellungen? Oder ist es nur durch Systemeinstellungen möglich? – user8

+0

@ user8: "dann kann ich die Auswahl in der App tun, sagen in den Einstellungen" - nein. "Oder ist es nur über Systemeinstellungen möglich?" -- Ja. – CommonsWare

+0

Also, nur um sicherzugehen, dass ich es richtig verstanden habe. Abgesehen von dem [Hacky Way] (http://www.fampennings.nl/maarten/android/09keyboard/index.htm) gibt es keine andere Möglichkeit, es als IME über App hinzuzufügen. Aber ich kann es immer noch aus den Systemeinstellungen als Standard auswählen. Recht? – user8

0

Ich denke, Sie können nur eine benutzerdefinierte Ansicht, die verhindert, Standard-Tastatur (die Standard-InputMethodService wie SamsungKeyboard) Pop-up und zeigen Sie Ihre eigenen. Welches Sie alle Schlüssel legen und mit onTouchListener interagieren.

Oder wenn Sie versuchen, Ihre eigene Tastatur-Anwendung wie SwiftKey zu machen, könnten Sie lesen wollen diese :(https://developer.android.com/guide/topics/text/creating-input-method.html)

Verwandte Themen