Question

Je veux une certaine fonctionnalité lorsque vous appuyez sur la touche Entrée sur un bouton. Quand j'override OnKey (), j'écrire le code doit être exécuté pour KEY_ENTER. Cela fonctionne très bien.

setupButton.setOnKeyListener(new OnKeyListener() {
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (KeyEvent.KEYCODE_ENTER == keyCode)
                {
                    Intent setupIntent = new Intent(getApplicationContext(),SetUp.class);
                    startActivityForResult(setupIntent, RESULT_OK);
                }
                return true;
            }
        });

Mais pas d'autres touches fonctionnent pour le bouton maintenant comme le flèches haut, bas clés, etc. Je sais que cela parce que je suis le overriden OnKey () pour seulement ENTRER.

Mais est-il possible que je peux conserver la fonctionnalité pour toutes les autres clés et remplacer uniquement pour certaines touches spécifiques?

Note: Tout cela est parce que mon onClick () n'est pas appelée lorsque la touche Entrée est enfoncée. Par conséquent, je dois passer outre OnKey () lui-même.

- Kiki

Était-ce utile?

La solution

Lorsque vous revenez vrai dans la fonction, qui indique Android, vous gérez toutes les clés, pas seulement sur la touche Entrée.

Vous devez retourner vrai qu'à la fin, à l'intérieur de l'instruction if et le faux retour à la fin de la fonction.

setupButton.setOnKeyListener(new OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (KeyEvent.KEYCODE_ENTER == keyCode)
            {
                Intent setupIntent = new Intent(getApplicationContext(),SetUp.class);
                startActivityForResult(setupIntent, RESULT_OK);
                return true;
            }
            return false;
        }
    });
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top