162 votes

Comment masquer le clavier virtuel lorsque l'activité démarre

J'ai un Edittext avec android:windowSoftInputMode="stateVisible" dans le Manifest. Maintenant, le clavier sera affiché lorsque je démarre l'activité. Comment le masquer? Je ne peux pas utiliser android:windowSoftInputMode="stateHidden" car lorsque le clavier est visible, puis que je réduis l'application et la reprendre, le clavier doit être visible. J'ai essayé avec

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

mais ça n'a pas fonctionné.

1voto

toktokwho Points 19

Essayez ceci.

D'abord, dans votre XML consultable, les champs (nom et hint etc) doivent contenir @string et non des chaînes littérales.

Ensuite, dans la méthode onCreateOptionsMenu, il faut avoir un objet ComponentName avec le nom de votre package et le nom complet de votre classe (avec le nom du package) - Dans le cas où l'activité qui contient le composant SearchView est la même que celle affichant les résultats de recherche, utilisez getComponentName(), comme le dit le développeur Google Android.

J'ai essayé de nombreuses solutions et après beaucoup de travail, cette solution a fonctionné pour moi.

1voto

user3024334 Points 11
Ed_Cat_Search = (EditText) findViewById(R.id.editText_Searc_Categories);

Ed_Cat_Search.setInputType(InputType.TYPE_NULL);

Ed_Cat_Search.setOnTouchListener(new View.OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        Ed_Cat_Search.setInputType(InputType.TYPE_CLASS_TEXT);
        Ed_Cat_Search.onTouchEvent(event); // appeler le gestionnaire natif
        return true; // consommer l'événement tactile
    }
});

celui-ci a fonctionné pour moi

1voto

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

cela fonctionnera

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X