Frage

Ich entwickle eine Anwendung auf einem Hardwaregerät, das eine integrierte Hardware-Tastatur hat, die nicht so rutscht heraus immer sichtbar ist (wie ein Blackberry). Daher möchte ich nie die Soft-Tastatur-Display für meine gesamte Anwendung. Ich bin mir dessen bewusst anderen SO Frage , die folgend gibt Codezeilen:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

Aber ich weiß nicht, wo Sie diesen Code setzt die Soft-Tastatur an allen Orten zu verstecken, wo es möglicherweise in meiner Tätigkeit erscheinen. Ich habe versucht, ohne Erfolg, den Code zu Activity.onUserInteraction hinzufügen. Es scheint, die Tastatur erscheint nach die onUserInteraction ausgeführt wird.

Ich habe auch versucht, indem die folgenden meiner <Activity>:

<activity 
    android:windowSoftInputMode="stateAlwaysHidden"
>

Soft-Tastatur erscheint nach wie vor.

War es hilfreich?

Lösung

Ihre Bewerbung sollte nichts tun. Die Firmware des Gerätes sollte eine Konfiguration enthalten, die die Soft-Tastatur hemmt sichtbar basiert auf der Hardware-Tastatur ist, wie jedes andere Android-Gerät, das eine Hardware-Tastatur. Wenn das nicht geschieht, sprechen Sie mit dem Hardware-Hersteller und sehen, ob sie auf die Bewältigung dieser planen.

Andere Tipps

Eine einfache Abhilfe für morgen Präsentation:

würde ich ein neues IME mit einer leeren Ansicht erstellen. Hier sind zwei Projekte für opensource Sie irgend Code suchen.

Wenn Sie mehr über Eingabemethoden wissen wollen, gehen Sie auf Erstellen Sie eine Eingabemethode .

Wenn ein EditText eine input von 0 hat, wird die Soft-Tastatur nie Pop-up, wenn das EditText ausgewählt ist.

EditText editText = findViewById(R.id.edit_text);
editText.setInputType(0);

Dies wird natürlich Notwendigkeit, dass alle der EditTexts in Ihrer Anwendung zu tun, oder man kann immer Unterklasse EditText und den Eingangstyp auf 0 in Ihrem Konstruktor festgelegt.

Zur Einstellung der xml input Parameter nicht tun, da das entspricht einem Aufruf der setRawInputType Methode, die nicht die KeyListener nicht entfernen.

Ich löste sie durch zwingende onCheckIsTextEditor Methode in meinem a-Bit-custom EditText.

@Override
public boolean onCheckIsTextEditor() {
    return false;
}

Wo immer Sie Text bearbeiten hat, diesen Code setzen ..

edittext.setInputType(InputType.TYPE_NULL);      
if (android.os.Build.VERSION.SDK_INT >= 11)   
{  
    edittext.setRawInputType(InputType.TYPE_CLASS_TEXT);  
    edittext.setTextIsSelectable(true);  
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top