2017-04-10 1 views
0

Ich bin in einer Situation, in der ich einen editText habe. Wenn ich im Bearbeitungstext auf Hinzufügen klicke, füge ich ein Mitglied in eine Liste ein. Wenn hinzugefügt (oder nicht), öffne ich einen benutzerdefinierten Dialog.Weiche Tastatur in Android nach einem benutzerdefinierten Dialogfeld ausblenden

In meiner Tätigkeit i diesen Code haben, wenn sie auf Schaltfläche Hinzufügen im Text bearbeiten klicken:

customDialogTeamMember = new CustomDialogTeamMember(............); 
    customDialogTeamMember.makeDialog(); 
    editText.getText().clear(); 
    editText.clearFocus(); 
    hideSoftKeyboard(); 

Mein hideSoftKeyboard() ist definiert wie:

public void hideSoftKeyboard() { 
    this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
} 

Diese Methode funktioniert in anderen Abschnitten die App. Aber hier funktioniert nicht!

Der benutzerdefinierte Dialog wird geöffnet. Wenn ich es schließe, bleibt die Tastatur auf dem Bildschirm. Was könnte das Problem sein ?!

+1

Sie überschreiben Did onDismissDialog in Ihrer Aktivität und rufen Sie hideSoftKeyboa auf rd(); darin? – AlexTa

+1

Verweisen Sie: - http://stackoverflow.com/questions/1109022/close-hide-the-android-soft-keyboard – Hangman

Antwort

2

ein- und ausblenden Keyboard

InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE); 
//Hide: 
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); 
//Show 
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0); 




private void hideKeyboard() { 
    // Check if no view has focus: 
    View view = this.getCurrentFocus(); 
    if (view != null) { 
     InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE); 
     inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
    } 
} 

private void showKeyboard() { 
    // Check if no view has focus: 
    View view = this.getCurrentFocus(); 
    if (view != null) { 
     InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE); 
     inputManager.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); 
    } 
} 
0

Ich habe das auf meinem Fall verwendet.

// for hide keyboard 
    public static void hideKeyboard(Activity activity) { 
     InputMethodManager iim = (InputMethodManager) 
       activity.getSystemService(Context.INPUT_METHOD_SERVICE); 

     if (activity.getCurrentFocus() != null) 
      iim.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 
        InputMethodManager.HIDE_NOT_ALWAYS); 
    } 

nennen Sie diese Methode als Ihre Anforderungen.und lassen Sie mich wissen..Hope dies hilft.

0
// Check if no view has focus: 
View view = this.getCurrentFocus(); 
if (view != null) { 
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
} 

Check this out

0

die Soft-Tastatur auszublenden und zu zeigen, verwenden Sie die folgende Methode

private void hideKeyboard() { 
    // Check if no view has focus: 
    View view = this.getCurrentFocus(); 
    if (view != null) { 
     InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE); 
     inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
    } 
} 

private void showKeyboard() { 
    // Check if no view has focus: 
    View view = this.getCurrentFocus(); 
    if (view != null) { 
     InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE); 
     inputManager.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); 
    } 
} 
0
// minimize keyboard 
    try { 
     InputMethodManager imm = (InputMethodManager)activity.getSystemService(INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(dialog.getCurrentFocus().getWindowToken(), 0); 
    } catch (Exception e) {} 
Verwandte Themen