NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Capitolo 10: Command e gli eventi.

 

La gestione degli eventi, in J2ME, segue il modello Unicast: vi è un solo listener (lett.: 'ascoltatore') degli eventi per ogni componente.

 

Ciò significa che ad ogni componente verrà associato un solo listener che dovrà riconoscere i tipi di eventi riguardanti il suo comando e gestirli di conseguenza.

 

 

Per intercettare gli eventi di comando bisogna implementare l'interfaccia CommandListener, che ci 'obbliga' a scrivere il metodo:

  • commandAction(Command c, Displayable d)   :   void;

il cui corpo conterrà le azioni da intraprendere quando verrà attivato il Command c sul Displayable d.

 

 

E' possibile impostare un CommandListener per un Command mediante il metodo:

  • setCommandListener(CommandListener l)   :   void.

 

La seguente porzione di codice identifica una versione 'ampliata' della MIDlet presentata nel capitolo precedente; in questo caso, un CommandListener si occupa di gestire l'evento di pressione del tasto associato al Command di tipo EXIT e label "Esci":

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


public class Prova extends MIDlet implements CommandListener
{
private Display d;
private Form f;
private Command esci;


public Prova()
{
d = Display.getDisplay(this);
f = new Form("Form di prova");
esci = new Command("Esci", Command.EXIT, 1);
f.addCommand(esci);
f.setCommandListener(this); // Imposto il listener dei comandi per il Form (che è un displayable)
d.setCurrent(f);
}

protected void startApp()
{
}

protected void pauseApp() { }

protected void destroyApp(boolean arg0)
{
notifyDestroyed();
}


public void commandAction(Command c, Displayable s)
{
int t = c.getCommandType();
if (t==Command.EXIT) destroyApp(true); // Termino l'applicazione
else if (t==Command.BACK) ; // Se, ad esempio, è un Command BACK, fai qualcos'altro, e così via...
}
}

Provate adesso a lanciare la MIDlet e a premere il pulsante del cellulare posto vicino alla label "Esci": l'esecuzione della MIDlet terminerà.

 

 
Vai all'inizio della pagina