1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  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.
     

Diese Seite empfehlen