Domanda

Ive ha portato un Blackberry 4.6.0 applicazione la tempesta sulla 4.7.0.Tutto funziona correttamente, a parte gli eventi di tocco sto cercando di controllare.Ho trappola touch eventi nel metodo seguito, che non come il suo dovrebbe, ma il problema è dopo la mia logica, in touchEvent esegue e tornare al Menu (che è attivato tramite il pulsante menu) viene sempre visualizzato.Ho cercato di restituire false, true e super.touchEvent(messaggio), ma viene ancora visualizzato.

Qualche idea di come posso evitare che il Menu venga visualizzato dopo cattura degli eventi di tocco?

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

I tuoi pensieri sono molto apprezzati

È stato utile?

Soluzione

Giusto per chiarire haagmm risposta:

Dopo un TouchEvent.Fare CLIC su è stato inviato alla tua domanda, un navigationClick evento sarà anche trasmesso.Questo è per ragioni di compatibilità, quindi le cose come ButtonFields su un dispositivo touchscreen, anche se l'applicazione non è stato esplicitamente scritto per rispondere a touchEvents.

Se un navigationClick evento non viene consumato (return true) in base al campo di applicazione, il menu contestuale che verrà visualizzato.

Se stai vedendo questo comportamento quando si fa clic su un pulsante di campo, la spiegazione è che, per impostazione predefinita, ButtonFields non consumare fare clic su eventi.Ho scoperto che è una buona pratica per creare sempre ButtonFields con i seguenti bit di stile set:

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

haagmm codice è una soluzione, ma un'idea migliore è quello di copiare il tuo TouchEvent.Fare CLIC su gestione del codice e incollarlo nel navigationClick metodo.In questo modo, un trackball dispositivo come il BlackBerry Tour sarà ancora in grado di utilizzare l'applicazione.

Altri suggerimenti

Se si sta "facendo clic su" schermo o a sinistra, cliccando con il mouse la sim si attiverà il menu di contesto, simile a se si fa clic con la trackball su un 4.6 dispositivo.

Avrete bisogno di fare qualcosa di simile a questo in campo si sovraccarica touchEvent in:

 protected boolean navigationClick(int status, int time) { return true; }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top