Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Gestione dei comandi

Associare funzionalità ai comandi creati sfruttando il metodo "commandAction"
Associare funzionalità ai comandi creati sfruttando il metodo "commandAction"
Link copiato negli appunti

Riprendiamo la piccola applicazione della lezione precedente e facciamo in modo che, alla pressione del tasto "Invia", essa visualizzi una schermata con la lista dei tre numeri di telefono del nostro amico.

Dobbiamo innanzitutto gestire i comandi che possono essere inviati, attraverso l'implementazione del metodo commandAction, al quale vengono passati come parametri, l'oggetto Command ed l' "oggetto Displayable" correlato (Displayable è l'interfaccia implementata da tutte le istanze grafiche J2ME).

Listato 5. commandAction

public void commandAction(Command c, Displayable arg1)
{
    if (c == exit)
    {
        notifyDestroyed();
    }
    else if (c == submit)
    {
        // TODO: visualizzazione lista
    }
}

In base al parametro c eseguo l'azione relativa:

  • exit: chiude l'applicazione
  • submit: passa alla visualizzazione della lista che realizzeremo di seguito.

Creazione della lista

Una lista può essere di tre tipi:

  • Esclusiva: permette di selezionare un solo elemento e di sottoporlo con una successiva operazione di invio;
  • Multipla: permette di selezionare più di un elemento e di sottoporli con una successiva operazione di invio;
  • Implicita: la selezione e la sottomissione di un elemento sono contemporanee (non c'è bisogno di un successivo invio);

Realizziamo, a seguito del comando di invio dal Form, una lista implicita con i numeri di telefono precedentemente inseriti (e avente come titolo il nome del nostro amico):

Listato 6. commandAction

public void commandAction(Command c, Displayable arg1)
{
    if (c == exit)
    {
        notifyDestroyed();
    }
    else if (c == submit)
    {
        String nameValue = name.getString();
        contact = new List(nameValue, List.IMPLICIT);
        contact.append(phone1.getString(), null);
        contact.append(phone2.getString(), null);
        contact.append(phone3.getString(), null);
        display.setCurrent(contact);
    }
}

Dal listato precedente si vede come si possono ricavare i valori inseriti nei campi di testo, tramite il metodo getString() dell'oggetto TextField e come si possano aggiungere le varie entry della lista con append() (il secondo parametro "null" indica che non si vogliono inserire immagini associate alla stringa aggiunta).

Inserendo dei dati nel form e premendo invia, si visualizza qualcosa di simile all'immagine che segue:

Figura 5. La lista con i dati inseriti
lista con i dati inseriti

Si possono aggiungere comandi anche all'oggetto List per poter poi eseguire operazioni sui dati visualizzati (modificare uno dei numeri, cancellarlo, ecc.).

Altri componenti di alto livello

Nella nostra midlet abbiamo utilizzato una Item particolare che è il TextField. Oltre ad esso ci sono altri componenti che si possono gestire all'interno dell'oggetto Form:

  • ChoiceGroup: con il quale si possono creare gruppi di checkbox;
  • DateField: per la gestione delle date;
  • Gauge: un indicatore interattivo e non, utile per visualizzare graficamente livelli di volume, percentuali di download, ecc.;
  • ImageItem: per inserire immagini;
  • StringItem: per inserire stringhe.

Oltre List e Form ci sono altri due oggetti, di alto livello, che derivano dalla classe Screen con funzionalità diverse:

  • TextBox: uno spazio dove inserire linee di testo;
  • Alert: un componente di dialogo utile per segnalare messaggi relativi a operazioni della midlet;
  • Ticker (variabile della classe Screen): visualizza un testo scorrevole sullo schermo.

Ti consigliamo anche