2010-05-20 30 views
0

Est-il possible d'annuler un événement à partir de la méthode onKey? Je veux seulement permettre à un nombre de 0 à 9. Si une autre touche a été pressée alors je veux annuler la pression de toucheAnnuler un événement onKey à partir de la méthode onKey

public boolean onKey(View v, int keyCode, KeyEvent ev) { 
      // TODO Auto-generated method stub 

      if(keyCode <30 || keyCode > 39){ 
       //Cancel Event 
      } 
      return false; 
     } 

Répondre

1

Est-ce pour limiter les entrées dans un champ de texte? Un moyen plus simple de le faire est de définir le inputType sur nombre, ce qui entraînera l'apparition du clavier numérique et digits sur true. Je crois que cette seconde va restreindre l'entrée à partir d'un clavier physique.

+0

La valeur numérique était déjà Integer, mais pas les chiffres, ce qui correspond à un ensemble de clés valides. Dans mon cas, j'ai mis en place un tableau de ressources de 0 à 9. Fonctionne bien! Merci Mayra – bugzy

0
if(keyCode <30 || keyCode > 39){ 
    return true; 
} else { 
    return false; 
} 
+0

Alors que cet extrait de code peut résoudre la question, [y compris une explication] (https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) contribue vraiment à améliorer la qualité de votre poster. Rappelez-vous que vous répondez à la question pour les lecteurs dans le futur, et que ces personnes pourraient ne pas connaître les raisons de votre suggestion de code. Essayez également de ne pas surcharger votre code avec des commentaires explicatifs, ceci réduit la lisibilité du code et des explications! –