Frage

Ich verwende den folgenden Code, um die Soft-Input-Tastatur in meiner Aktivität um Pop-up


InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.getInputMethodList();

imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

Dies zeigt die alphabetische Tastatur.

Aber ich mag die numerische Tastatur angezeigt werden soll.

Bitte beachten Sie, ich weiß, dass setInputType mit () funktioniert, wenn sie mit einem EditText oder einem Textview verwendet, aber ich möchte in der Lage sein die Tastatur anzuzeigen, ohne einen Eingangsbereich, wie einem EditText und einfach auf die Taste drückt auf der Tastatur zu hören.

Kann jemand bestätigen, ob dies möglich ist und wenn ja, wie es erreicht werden kann?

War es hilfreich?

Lösung

versuchen, die „onKeyDown“ Methoden verwenden, ich benutze sie für die Erfassung der „Rückseite“ harten Schlüssel auf Handys in meiner Anwendung, ein Beispiel für die Methode, wie der Knopf seine Hören für die Verwendung zurück, wäre

    public boolean onKeyDown(int keyCode, KeyEvent event){
      if((keyCode == KeyEvent.KEY_BACK)){
          back();
      }
         return super.onKeyDown(keyCode,event);
   }

Doch statt KeyEvent.KEY_BACK verwenden, versuchen Sie es mit KeyEvent.KEYCODE_P. Ich bin nicht Possitive wenn diese auf einer Soft-Tastatur arbeiten, aber es ist ein Versuch wert! Glück

Andere Tipps

Dies ist in der Tat erreichbar und möglich.

TL; DR:

außer Kraft setzt onCreateInputConnection und fordert eine numerische Tastatur:

public class CustomView extends View {

    [your methods here]

    @Override
    public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
        InputConnection connection =  super.onCreateInputConnection(outAttrs);
        outAttrs.inputType |= InputType.TYPE_CLASS_NUMBER;
        return connection;
    }
}

Vollständige Erklärung

Sie haben subclassed View Ihre eigene benutzerdefinierte Ansicht zu erstellen:

public class CustomView extends View {
    [your methods here]
}

Innerhalb dieser benutzerdefinierten Ansicht, verwenden Sie die InputMethodManager die Tastatur zeigen. Dieser Manager wird Eingang delegieren zu einem InputConnection , die dann delegieren zu einem InputMethod .

Zur Anfrage, dass sie Tastatur gezeigt numerisch ist, können Sie außer Kraft setzen möchten werden onCreateInputConnection eine numerische Tastatur zurückzukehren. Sie könnten sich die Mühe machen und realisieren einen eigenen BaseInputConnection oder Sie könnten nur die für Sie von super (in diesem Fall View) und legen Sie die Eigenschaft die Sie interessieren (inputType).

erstellt Wiederverwendung
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top