1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Flixius, 18.06.2011 #1
    Flixius

    Flixius Threadstarter Android-Hilfe.de Mitglied

    Hallo,

    ich benutze in meiner App ein Tablayout. Tab A hat EditText-Felder, Tab B hat keine. Wenn ich bei Tab A einen text eingebe und auf einen Button klicke, dann blende ich die Tastatur wie folgt aus:

    Code:
    EditText _et1 = (EditText)findViewById(R.id.et_artist);
    InputMethodManager imm = (InputMethodManager)getSystemService(this.INPUT_METHOD_SERVICE); 
            imm.hideSoftInputFromWindow(_et1.getWindowToken(), 0);
    
    Wenn ich aber nur in das EdtiText-Feld reinklicke, nicht den Button betätige und stattdessen einfach das Tab wechsel, dann bleibt das Keyboard sichtbar. Um es auszublenden habe ich die folgenden Zeilen geschrieben, die leider nicht Funktionieren. Das Problem ist, dass _et1 immer NULL ist. Wenn ich nicht auf != null abfrage, dann kriege ich logischerweise eine NullpointerException. Das Event wird aber korrekt geschmissen.

    Code:
    //In der MainApp.java:
            public void onTabChanged(String tabId) {
                    EditText _et1;
                    _et1 = (EditText)findViewById(R.id.et_artist);            
                    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
                    if(_et1 != null)
                        imm.hideSoftInputFromWindow(_et1.getWindowToken(), 0);    
            }
        });
    
    Ich hoffe ihr könnt mir helfen. Ich hab schon so einige Stunden mit diesem Problem verbracht.
     
Du betrachtest das Thema "Keyboard nach Tabwechsel ausblenden" im Forum "Android App Entwicklung",