IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Cacher le clavier


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Par défaut Cacher le clavier
    Bonjour,

    Actuellement en train de développer une application Android, je souhaite cacher le clavier après le click de l'utilisateur, mais sans succès jusqu'à maintenant.

    Voici le workflow complet :
    J'ai au sein d'un layout 2 LinearLayout qui suivant les actions de l'utilisateur s'affichent sur par dessus l'autre avec un effet de fadeIn - fadeOut. Dans le linearLayout qui s'affiche par défaut, l'utilisateur n'a pas la possibilité de saisir du texte. Suite à un click sur un bouton, la transition se fait et apparaît alors à l'écran un autocompleteTextView ainsi qu'un bouton "Ok". Lorsque l'utilisateur appuie sur le bouton "Ok", la transition se refait en pour réafficher le linearLayout par défaut. Ce que je voudrais c'est qu'à l'appuie du bouton "Ok", le clavier disparaisse.

    Malgré des recherches sur Internet, les codes testés ne semblent pas fonctionner dans mon cas de figure.

    Voici un extrait du code qui en théorie cache le clavier mais qui ne fonctionne pas chez moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    final Button chooseOk = (Button) view.findViewById(R.id.chooseOk);
    chooseOk.setOnClickListener(new OnClickListener() {
      public void onClick(final View view) {
        final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromInputMethod(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
      }
    }
    Si vous avez d'autres pistes je suis preneur !

    Merci d'avance pour votre aide !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Essaie cette méthode :
    Avec view étant en général l'EditText dans lequel tu as écrit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	public static void hideKeyboard(Context ctx, View v) {
    		InputMethodManager imm = (InputMethodManager) ctx
    				.getSystemService(Context.INPUT_METHOD_SERVICE);
    		imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
    	}

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Par défaut
    Bonjour,

    Sans aller jusqu'à externaliser la fonction, j'ai bien tenté de préciser le context et j'ai également tenté de mettre la constante 0, mais ça ne fonctionne pas pour autant.

    Voici le code modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    final Button chooseOk = (Button) view.findViewById(R.id.chooseOk);
    chooseOk.setOnClickListener(new OnClickListener() {
      public void onClick(final View view) {
        final InputMethodManager imm = (InputMethodManager) MonActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromInputMethod(view.getWindowToken(), 0);
      }
    }

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Le problème est certainement que tu appliques la fonction sur l'élément Bouton.
    Alors qu'il faut normalement le faire sur un élément sur lequel le clavier peut être actif : par exemple un EditText.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Par défaut
    J'ai bien essayé de passer le token de l'autocompleteTextView
    , mais ça ne change rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imm.hideSoftInputFromInputMethod(autocompleteTextView.getWindowToken(), 0);
    J'ai également testé d'exécuter les quelques lignes de code à la perte du focus de l'autocompleteTextView. Mais le clavier n'est pas caché pour autant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    final AutoCompleteTextView autoCompleteSearch = (AutoCompleteTextView) view.findViewById(R.id.search);
    autoCompleteSearch.setOnFocusChangeListener(new OnFocusChangeListener() {
      public void onFocusChange(final View view, final boolean hasFocus) {
        if (!hasFocus) {
            final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromInputMethod(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
         }
      }
    });

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Ton Manifest ne spécifie pas que le clavier doit rester visible ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Evénement pour cacher le clavier
    Par Sylvaner dans le forum Android
    Réponses: 1
    Dernier message: 19/05/2014, 12h59
  2. Cacher le clavier virtuel
    Par Cedric G dans le forum Android
    Réponses: 7
    Dernier message: 02/08/2013, 14h34
  3. Réponses: 2
    Dernier message: 27/03/2012, 09h15
  4. Réponses: 2
    Dernier message: 17/10/2007, 13h15
  5. cacher la saisie tappée au clavier
    Par pierrot512 dans le forum C++
    Réponses: 3
    Dernier message: 13/12/2004, 21h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo