Question

Ive porté une application Blackberry 4.6.0 vers la tempête sur 4.7.0. Tout fonctionne très bien en dehors des événements tactiles je suis en train de contrôler. I événements tactiles piège dans la méthode ci-dessous, qui fait comme son supposé, mais le problème est après ma logique dans le TouchEvent exécute et retourner le menu (des thats par touche de menu) est toujours affiché. J'ai essayé de retourner faux, vrai et super.touchEvent (message), mais il semble encore.

Toutes les idées de la façon dont je peux empêcher le menu d'apparaître après piégeant événement tactile?

protected boolean touchEvent(TouchEvent message)
{
     if (message.getEvent() == TouchEvent.CLICK)
     {
        //My code here
     }
}

Vos pensées sont appréciées

Était-ce utile?

La solution

Juste pour clarifier la réponse de haagmm:

Après une TouchEvent.CLICK a été envoyé à votre demande, un événement navigationClick sera également envoyé. Ceci est pour des raisons de compatibilité, donc les choses comme ButtonFields fonctionnera sur un appareil à écran tactile, même si l'application n'a pas été explicitement écrit pour répondre à touchEvents.

Si un événement navigationClick ne se consume pas (return true) par un champ dans votre application, le menu contextuel est affiché.

Si vous voyez ce comportement lorsque vous cliquez sur un champ de bouton, l'explication est que par défaut, ButtonFields ne consomment pas cliquez sur les événements. J'ai trouvé qui est une bonne pratique de construire toujours ButtonFields avec les bits de style suivants sont définis:

ButtonField myButtonField = 
    new ButtonField( ButtonField.CONSUME_CLICK | ButtonField.NEVER_DIRTY );

Le code de haagmm est une solution, mais une meilleure idée est de copier votre code de gestion des TouchEvent.CLICK coller aussi dans la méthode navigationClick. De cette façon, un dispositif trackball comme le BlackBerry Tour sera toujours en mesure d'utiliser votre application.

Autres conseils

Si vous êtes « en cliquant sur » l'écran ou à gauche en cliquant la souris sur la carte SIM, vous déclencherez le menu contextuel, semblable à si vous avez cliqué sur la boule de commande sur un appareil 4.6.

Vous aurez besoin de faire quelque chose de semblable à cela sur le champ surchargé TouchEvent dans:

 protected boolean navigationClick(int status, int time) { return true; }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top