2012-12-05 4 views
2

J'ai essayé plusieurs méthodes pour ce site en insérant le code dans le onCreateOptionsMenu (Menu menu) sans succès. Je veux cacher le clavier lorsque je clique sur le bouton de menu.Comment cacher le clavier par défaut lorsque vous cliquez sur le menu?

J'ai trois EditText où j'écris des données, et des options pour insérer/supprimer/modifier une base de données, sont sur le menu, mais si je clique, le clavier ne se cache pas automatiquement.

J'ai quelque chose comme ceci:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 

    if(this.getCurrentFocus() != null && this.getCurrentFocus() instanceof EditText){ 
     InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
    } 
    return true; 
} 

Il ne fonctionne que la première fois que j'appuie sur le bouton de menu.

Merci!

Répondre

0

Déplacer le code à onOptionsItemSelected au lieu

public boolean onOptionsItemSelected(MenuItem item) { 
    ..... 
    if(this.getCurrentFocus() != null && this.getCurrentFocus() instanceof EditText){ 
     InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
    } 
    return super.onOptionsItemSelected(item); 
} 
0

Un autre endroit que vous pouvez mettre le code InputMethodManager est dans le comme rappel onPrepareOptionsMenu() ceci:

public boolean onPrepareOptionsMenu (Menu menu) { 
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 
    return true; 
} 

Vous pouvez préférer si vous voulez que le clavier caché que l'utilisateur clique sur l'un des éléments de menu.

Questions connexes