web-dev-qa-db-fra.com

forcer le clavier logiciel pour montrer quand EditText obtient le focus

J'ai un EditText que je suis en train de passer au focus par programme. Mais quand je le fais, je veux que le clavier apparaisse aussi (et qu'il baisse ensuite lorsque EditText perd le focus). Pour le moment, l'utilisateur doit cliquer sur EditText pour afficher le clavier, même si EditText a déjà le focus. 

12
Cote Mounyo

Voici comment je montre le clavier:

EditText yourEditText= (EditText) findViewById(R.id.yourEditText);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
17
Waza_Be
<activity   Android:name=".YourActivity"
            Android:windowSoftInputMode="stateVisible" />

Ajouter ceci au fichier manifeste ...

23
Anil Bhatiya

configurez ceci pour que votre activité dans votre manifeste apparaisse automatiquement au clavier lorsque votre écran contient la boîte de dialogue EditText

<activity Android:windowSoftInputMode="stateAlwaysVisible" ... />

Pour masquer le clavier en cas de perte du focus, définissez OnFocusChangeListener pour EditText.

Dans le onCreate ()

EditText editText = (EditText) findViewById(R.id.textbox);
OnFocusChangeListener ofcListener = new MyFocusChangeListener();
editText.setOnFocusChangeListener(ofcListener);

Ajouter cette classe

private class MyFocusChangeListener implements OnFocusChangeListener {

    public void onFocusChange(View v, boolean hasFocus){

        if(v.getId() == R.id.textbox && !hasFocus) {

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

        }
    }
}
7
jad

Pour afficher le clavier, utilisez le code suivant.

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);

Pour masquer le clavier, utilisez le code ci-dessous . Et est la référence à EditText

InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(getActivity().INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(et.getWindowToken(), 0);
6
Rohit

Pour le faire en fonction de l'auditeur de focus, vous devriez choisir:

final InputMethodManager imm =(InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
editText.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if(hasFocus){
                imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);
            }else{
                 imm.hideSoftInputFromWindow(et.getWindowToken(), 0);
            }
            imm.toggleSoftInput(0, 0);
        }
    });

J'espère que cela t'aides.

Cordialement!

0
Martin Cazares