Autore Topic: [facile] Uso dei toast  (Letto 16004 volte)

Offline maku85

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: +35
    • Mostra profilo
  • Dispositivo Android:
    Sony Xperia J
  • Play Store ID:
    MaKu
  • Sistema operativo:
    Windows 8.1
[facile] Uso dei toast
« il: 11 Maggio 2011, 15:19:06 CEST »
+9
Livello di difficoltà: facile
Link al file compresso del progetto eclipse: file in allegato

Un toast è un avviso mostrato sullo schermo per un breve periodo di tempo per fornire informazioni di conferma,avviso o simili riguardanti l'applicazione.Occupa lo spazio necessario per far visualizzare il suo contenuto e l'attività sottostante rimane visibile e attiva.

Per utilizzare i toast si fa uso della classe android.widget.Toast.
Per la creazione si possono invocare i metodi
Codice (Java): [Seleziona]
public static Toast makeText(Context context,CharSequence text,int duration)e
Codice (Java): [Seleziona]
public static Toast makeText(Context context,int resId,int duration)
che ricevono come parametri il contesto applicativo(context,ad esempio l'attività stessa),il messaggio da mostrare come stringa(text)o come riferimento a risorsa esterna(resId) e la durata del messaggio. Quest'ultima non può essere scelta arbitrariamente ma ha solo due valori sottoforma di costanti:
Toast.LENGHT_SHORT per una durata breve e
Toast.LENGHT_LONG per una durata lunga.

Esempio:
Codice (Java): [Seleziona]
Toast toast=Toast.makeText(this,"Questo è un toast",Toast.LENGTH_LONG);
e dopo averlo creato lo si visualizza con il metodo
Codice (Java): [Seleziona]
toast.show();
Di default l'avviso viene mostrato in basso centralmente ma con il metodo
Codice (Java): [Seleziona]
public void setGravity(int gravity,int xOffset,int yOffset)si può impostare una diversa posizione spedificando l'angolo dello schermo(con la costante gravity) e lo spazio dai bordi orizzontali(xOffset) e da quello orizzontali(yOffset)

Esempio:
Codice (Java): [Seleziona]
toast.setGravity(Gravity.TOP|Gravity.LEFT,40,40);
In alternativa al semplice testo si può scegliere di mostrare immagini o altri widget. In questo caso anzichè utilizzare il metodo statico makeText() si usa il costruttore della classe con argomento il contesto dell'applicazione
Codice (Java): [Seleziona]
Toast toast=new Toast(this);
La durata e la posizione si impostano con i metodi
Codice (Java): [Seleziona]
toast.setDuration(Toast.LENGTH_LONG);
toast.setGravity(int gravity,int xOffset,int yOffset);

Con il metodo setView(View v),si imposta il widget da visualizzare all'interno della notifica in sostituzione del testo.

Esempio
Codice (Java): [Seleziona]
ImageView image=new ImageView(this);
Image.setImageResource(R.drawable.icona);
Toast toast=new Toast(this);
toast.setGravity(Gravity.CENTER,0,0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(image);
toast.show();

In alternativa è possibile creare un layout XML esterno per poi caricarlo sottoforma di oggetto View passando attraverso un oggetto android.view.LayoutInflater.Ogni attività ne mette a disposizione un'istanza
Codice (Java): [Seleziona]
LayoutInflater inflater=getLayoutInflater();
View layout=inflater.inflate(R.layout.toast_xml,null);

Esempio di layout del toast
Codice (XML): [Seleziona]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:id="@+id/toast_layout_root"
             android:orientation="horizontal"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:padding="10dp"
             android:background="#DAAA"
             >
    <ImageView android:id="@+id/image"
              android:layout_width="wrap_content"
              android:layout_height="fill_parent"
              android:layout_marginRight="10dp"
              />
    <TextView android:id="@+id/text"
             android:layout_width="wrap_content"
             android:layout_height="fill_parent"
             android:textColor="#FFF"
             />
</LinearLayout>

Creazione del toast personalizzato
Codice (Java): [Seleziona]
LayoutInflater inflater = getLayoutInflater();
        View layout = inflater.inflate(R.layout.toast_layout,(ViewGroup) findViewById(R.id.toast_layout_root));

        ImageView image = (ImageView) layout.findViewById(R.id.image);
        image.setImageResource(R.drawable.android);
        TextView text = (TextView) layout.findViewById(R.id.text);
        text.setText("Questo è un toast personalizzato!");

        Toast toast = new Toast(getApplicationContext());
        toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
        toast.setDuration(Toast.LENGTH_LONG);
        toast.setView(layout);
        toast.show();

Bibliografia:
- Il programmatore è colui che risolve in un modo incomprensibile un problema che non sapevi di avere -

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:[facile] Uso dei toast
« Risposta #1 il: 11 Maggio 2011, 22:33:51 CEST »
0
Complimenti per il tutorial, veramente completo e ben fatto :)
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline davidino81

  • Utente junior
  • **
  • Post: 66
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc one v
  • Sistema operativo:
    Windows 7
Re:[facile] Uso dei toast
« Risposta #2 il: 12 Dicembre 2012, 09:45:43 CET »
0
Grazie per la guida, mi è stata molto utile.

« Ultima modifica: 12 Dicembre 2012, 09:48:58 CET da davidino81 »

Offline Acca.Emme

  • Nuovo arrivato
  • *
  • Post: 38
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Ubuntu
Re:[facile] Uso dei toast
« Risposta #3 il: 24 Gennaio 2013, 00:11:29 CET »
0
Mitico, complimenti!

Offline caita81

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    samsung s1 plus
  • Sistema operativo:
    windows xp
Re:[facile] Uso dei toast
« Risposta #4 il: 10 Maggio 2013, 16:44:44 CEST »
+1
in questo frammento di codice da te scritto c'è solo un piccolo errore, la "i" di image maiuscola al secondo rigo che dovrebbe essere minuscola.

Esempio
Codice (Java): [Seleziona]
ImageView image=new ImageView(this);
Image.setImageResource(R.drawable.icona);  //questo rigo (ndr)
Toast toast=new Toast(this);
toast.setGravity(Gravity.CENTER,0,0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(image);
toast.show();

Offline genny84

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4
  • Sistema operativo:
    Android KitKat
Re:[facile] Uso dei toast
« Risposta #5 il: 18 Febbraio 2014, 11:33:40 CET »
0
Grazie per la guida, era quello che cercavo!
 ;-)

Offline Blodhgard

  • Utente junior
  • **
  • Post: 53
  • Respect: +3
    • Mostra profilo
    • Budget Veloce
  • Dispositivo Android:
    Nexus 5, S4 mini, Galaxy Tab S
  • Play Store ID:
    blodhgard
  • Sistema operativo:
    Windows 8.1
Re:[facile] Uso dei toast
« Risposta #6 il: 16 Ottobre 2014, 18:59:59 CEST »
0
Grazie per il tutorial!!