Question

J'ai une activité avec un éditex numérique assis au-dessus d'un bouton.

J'ai remarqué que si vous cliquez dans le texte d'édition et utilisez le clavier dur pour saisir certains numéros, appuyez sur la touche HARD Entrée, qu'elle déplace la mise au point sur le bouton ci-dessous dans le texte d'édition et un clavier QWERTY apparaît.Comment puis-je arrêter cela de se produire?

J'ai essayé de contrôler la touche Entrée avec les éléments suivants:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activityEnterAmt);

    final EditText editText = (EditText) findViewById(R.id.editTextEnterAmt);
    editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) {
                Log.i("Tag", "Enter pressed or IME Action Submit pressed");
                saveButtonClick(editText);
            }
            return false;
        }
    });
}

Mais je veux vraiment l'arrêter d'ouvrir le clavier lorsque vous appuyez sur Entrée.Je ne comprends pas vraiment pourquoi ça fait ça?

merci

Était-ce utile?

La solution

J'ai résolu ce problème en fermant le clavier logiciel lorsque l'EditText perd la mise au point:

editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (v == editText) {
                if (hasFocus) {
                    ((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(editText,
                            InputMethodManager.SHOW_FORCED); // open keyboard

                } else {
                    ((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(
                            editText.getWindowToken(), 0); // close keyboard
                }
            }
        }
    });

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top