Comment cacher le clavier souple lorsque l'activité commence

j'ai un texte avec android:windowSoftInputMode="stateVisible" dans le Manifeste. Maintenant, le clavier s'affichera lorsque je commencerai l'activité. Comment le cacher? Je ne peux pas utiliser android:windowSoftInputMode="stateHidden parce que lorsque le clavier est visible alors minimiser l'application et le reprendre le clavier devrait être visible. J'ai essayé avec

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

mais ça n'a pas marché.

127
demandé sur Aju 2013-09-24 13:03:47

19 réponses

utilisez les fonctions suivantes pour afficher / masquer le clavier:

/**
 * Hides the soft keyboard
 */
public void hideSoftKeyboard() {
    if(getCurrentFocus()!=null) {
        InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
    }
}

/**
 * Shows the soft keyboard
 */
public void showSoftKeyboard(View view) {
    InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
    view.requestFocus();
    inputMethodManager.showSoftInput(view, 0);
}
193
répondu Sherif elKhatib 2013-09-24 09:06:13

dans le AndroidManifest.xml :

<activity android:name="com.your.package.ActivityName"
          android:windowSoftInputMode="stateHidden"  />

ou d'essayer

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

s'il vous Plaît cochez la case ce aussi

307
répondu Neenu 2018-07-31 10:21:14

il suffit d'ajouter deux attributs à la vue parent d'editText.

android:focusable="true"
android:focusableInTouchMode="true"
34
répondu mani 2016-04-19 06:48:18

mettez ceci dans le manifeste à l'intérieur de l'étiquette D'activité

  android:windowSoftInputMode="stateHidden"  
34
répondu Saneesh 2017-06-25 05:31:40

essayez ceci:

<activity
    ...
    android:windowSoftInputMode="stateHidden|adjustResize"
    ...
>

regardez cette pour plus de détails.

23
répondu Adnan 2017-05-23 12:02:57

pour cacher le softkeyboard au moment du début de la nouvelle activité ou onCreate() , onStart() etc. vous pouvez utiliser le code ci-dessous:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
10
répondu Rana 2014-09-11 12:17:50

ajoutez le texte suivant à votre fichier xml.

<!--Dummy layout that gain focus -->
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:orientation="vertical" >
            </LinearLayout>
6
répondu Hits 2014-09-22 11:37:18

j'espère que cela va fonctionner, j'ai essayé beaucoup de méthodes mais celle-ci a fonctionné pour moi dans fragments . il suffit de mettre cette ligne dans onCreateview/init.

getActivity().getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
5
répondu Mubashar 2017-04-19 10:07:07

vous pouvez définir config sur AndroidManifest.xml

exemple:

<activity
    android:name="Activity"
    android:configChanges="orientation|keyboardHidden"
    android:theme="@*android:style/Theme.NoTitleBar"
    android:launchMode="singleTop"
    android:windowSoftInputMode="stateHidden"/>
4
répondu Long Nguyen 2017-06-22 05:11:14

pour masquer le softkeyboard au moment de la nouvelle activité start ou onCreate(),onStart() méthode etc. utilisez le code ci-dessous:

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

pour cacher softkeyboard au moment du bouton est cliquez dans l'activité:

View view = this.getCurrentFocus();

    if (view != null) {
        InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
        assert imm != null;
        imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }
4
répondu Adam 2018-05-17 07:16:07

mettez ce code votre fichier java et passer l'argument pour l'objet sur edittext,

private void setHideSoftKeyboard(EditText editText){
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
3
répondu Najib Puthawala 2015-01-16 14:09:14

utilisez le code suivant pour cacher le softkeyboard première fois lorsque vous commencez l'activité

getActivity().getWindow().setSoftInputMode(WindowManager.
LayoutParams.SOFT_INPUT_STATE_HIDDEN);
3
répondu Geeta Gupta 2017-10-28 10:45:14

C'est ce que j'ai fait:

yourEditText.setCursorVisible(false); //This code is used when you do not want the cursor to be visible at startup
        yourEditText.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                v.onTouchEvent(event);   // handle the event first
                InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                if (imm != null) {

                    imm.hideSoftInputFromWindow(v.getWindowToken(), 0);  // hide the soft keyboard
                    yourEditText.setCursorVisible(true); //This is to display cursor when upon onTouch of Edittext
                }
                return true;
            }
        });
1
répondu mangu23 2015-07-10 03:59:28

essayez ceci.

tout d'abord dans votre recherche xml les champs (Nom et indice, etc.) mettent @string et non des chaînes littérales.

puis méthode onCreateOptionsMenu , il doit avoir un ComponentName objet avec votre nom de paquet et votre nom de classe complété (avec le nom de paquet) - au cas où l'activité qui a le composant SearchView est la même que l'utilisation des résultats de recherche de spectacle getComponentName() , comme le développeur android google dit.

J'ai essayé beaucoup de solutions et d'après beaucoup,beaucoup de travail cette solution fonctionne pour moi.

1
répondu toktokwho 2016-03-18 03:01:44

essayez celui-ci aussi

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); // call native handler
        return true; // consume touch even
    }
});
1
répondu ritesh4326 2018-01-17 09:07:52

si votre application cible API Android niveau 21 ou plus qu'il ya une méthode par défaut disponible.

editTextObj.setShowSoftInputOnFocus(false);

assurez-vous d'avoir défini le code ci-dessous dans la balise XML EditText .

<EditText  
    ....
    android:enabled="true"
    android:focusable="true" />
1
répondu Harpreet 2018-03-28 12:45:37

Utilisant AndroidManifest.xml

<activity android:name=".YourActivityName"
      android:windowSoftInputMode="stateHidden"  
 />

Utilisant Java

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

à l'aide de la solution ci-dessus clavier cacher mais édittext de se concentrer lorsque l'activité est créée, mais saisir lorsque vous les touchez en utilisant:

ajouter à votre EditText

<EditText
android:focusable="false" />

ajouter aussi auditeur de votre texte électronique

youredittext.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
    v.setFocusable(true);
    v.setFocusableInTouchMode(true);
    return false;
}});
1
répondu Atif Amin 2018-09-27 06:11:22
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); // call native handler
        return true; // consume touch even
    }
});

this one worked for me
0
répondu user3024334 2018-04-07 15:01:12
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

ça fonctionne

0
répondu 2018-04-26 05:20:50