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

13voto

R.P Singh Points 61

Pour masquer le clavier virtuel au moment du démarrage d'une nouvelle activité ou onCreate(), onStart() etc., vous pouvez utiliser le code suivant :

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

12voto

Atif Amin Points 160

Utilisation de AndroidManifest.xml

Utilisation de Java

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

avec la solution ci-dessus, le clavier se cache mais les EditText prennent le focus lorsqu'une activité est créée, mais le prennent lorsque vous les touchez en utilisant :

ajoutez dans votre EditText

ajoutez également un auditeur à votre EditText

votreEditText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
    v.setFocusable(true);
    v.setFocusableInTouchMode(true);
    return false;
}});

8voto

Hitesh542 Points 488

Ajoutez le texte suivant à votre fichier xml.

6voto

Mubashar Points 190

J'espère que cela fonctionnera, j'ai essayé de nombreuses méthodes mais celle-ci a fonctionné pour moi dans les fragments. Il suffit de mettre cette ligne dans onCreateview/init.

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

6voto

yousef Points 935

Ajoutez votre activité dans le manifeste cette propriété

android:windowSoftInputMode="stateHidden"

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