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é.

4voto

Long Nguyen Points 49

Vous pouvez définir la configuration dans AndroidManifest.xml

Exemple:

4voto

Geeta Gupta Points 554

Utilisez le code suivant pour Masquer le clavier virtuel la première fois que vous lancez l'activité

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

3voto

mangu23 Points 697

C'est ce que j'ai fait:

yourEditText.setCursorVisible(false); //Ce code est utilisé lorsque vous ne voulez pas que le curseur soit visible au démarrage
        yourEditText.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                v.onTouchEvent(event);   // gérer d'abord l'événement
                InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                if (imm != null) {

                    imm.hideSoftInputFromWindow(v.getWindowToken(), 0);  // masquer le clavier virtuel
                    yourEditText.setCursorVisible(true); //Ceci est pour afficher le curseur lors du onTouch de Edittext
                }
                return true;
            }
        });

3voto

ritesh4326 Points 246

Essayez également celui-ci

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
    }
});

2voto

Harpreet Points 894

Si votre application cible Android API Level 21 ou plus, alors une méthode par défaut est disponible.

editTextObj.setShowSoftInputOnFocus(false);

Assurez-vous d'avoir ajouté le code ci-dessous dans la balise XML de EditText.

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