Afficher le clavier du logiciel sans EditText

Mon objectif est de montrer / cacher le clavier du logiciel sur écran sur un événement et d'intercepter l'entrée de ce clavier.

J'ai découvert que le clavier doux peut être affiché pour certains descendants de classe View, mais je n'ai besoin d'aucune représentation visuelle du widget d'édition de texte à l'écran, juste la possibilité de programmer le masque de clavier doux avec l'interception d'entrée.

  • Comment obtenir la position tactile dans Android?
  • Le repo de maven de tissu provoque des versions progressives de gradle
  • Ajouter un raccourci de lancement d'application dans Eclipse?
  • Coloré en boîte avec des lettres à la Gmail
  • Equivalent Java de .NET RSACryptoServiceProvider avec SHA-1
  • Recycler la vue - java.lang.NullPointerException
  • Quel est le meilleur moyen d'y parvenir?

  • Attribution d'objet au dessin / mise en page?
  • Créer et exécuter une application via Gradle et Android Studio 2.0 est plus lent
  • Comment obtenir une liste d'amis de Twitter en utilisant Social Auth dans Android?
  • Désactiver le défilement dans listview
  • Encoder une série d'images dans une vidéo
  • Comment résoudre le SkImageDecoder :: Factory renvoyé null
  • 3 Solutions collect form web for “Afficher le clavier du logiciel sans EditText”

    Même si cette question a été posée il y a près d'un an, elle n'avait pas de réponse acceptée et totalement utile, et j'ai rencontré moi-même le problème avec moi même si je partageais ma solution:

    Comme Vikram l'a souligné, c'est la façon de montrer l'entrée douce:

    InputMethodManager im = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE); im.showSoftInput(myView, InputMethodManager.SHOW_FORCED); 

    MAIS, vous devez également définir votre point de vue en mode tactile et fiable en mode tactile:

     myView.setFocusable(true); myView.setFocusableInTouchMode(true); 

    Ou à votre avis XML:

     android:focusable = "true" android:focusableInTouchMode = "true" 

    Vous pouvez forcer le Softkeyboard à afficher en utilisant:

     InputMethodManager im = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE); im.showSoftInput(myView, InputMethodManager.SHOW_FORCED); 

    Et à cacher:

     ((InputMethodManager) YourActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(findViewById(R.id.YOUR_VIEW).getWindowToken(), 0); 

    En fait, vous pouvez always afficher une entrée de clavier doux à partir du manifeste. Ajoutez cette ligne à chaque activité que vous souhaitez afficher le clavier doux:

     android:windowSoftInputMode="stateAlwaysVisible" 

    Le clavier doux apparaîtra, peu importe s'il n'y a pas de edittext dans la vue. Exemple:

     <activity android:name=".ChatActivity" android:windowSoftInputMode="stateAlwaysVisible"> </activity> 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.