Toast

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda

Introdución

  • Un Toast proporciona un simple feedback de algo que pasa na aplicación a través dunha pequena mensaxe popup.
  • Chámaselle así "Tostada" porque aparece na pantalla do mesmo xeito que as tostadas saltan na torradora cando están feitas.

00 toast.png

  • So usa o espazo que precise a mensaxe e a pantalla actual permanece visible.
  • Desaparecen automaticamente pasado un pequeno espazo de tempo.


  • Para usar o Toast:
1 Context context = getApplicationContext();
2 CharSequence text = "Hello toast!";
3 int duration = Toast.LENGTH_SHORT;
4 
5 Toast toast = Toast.makeText(context, text, duration);
6 toast.show();
  • Context: é un interface que permite acceder aos recursos da nosa aplicación
  • duration:
    • LENGTH_SHORT: constante que equivale a 2 segundos
    • LENGTH_LONG: constante que equivale a 3,5 segundos


  • As liñas 5 e 6 anteriores poden ser substituídas pola seguinte:
1 Toast.makeText(context, text, duration).show();


Caso práctico

  • Comezamos creando o proxecto U2_15_Toast
  • Collendo como base a primeira versión da aplicación dos planetas: U2_12_Spinner.
  • Simplemente agora a nova aplicación ten unha entrada máis ao principio do Spinner Selecciona un planeta.



Arquivo de recursos: array_planetas.xml

  • Copiamos o ficheiro array_planetas.xml ubicado en /res/values/ dunha aplicación á outra.
  • Engadimos un ítem ao principio:
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <resources>
 3      <string-array name="planetas">
 4         <item>Selecciona un planeta</item>
 5         <item>Mercurio</item>
 6         <item>Venus</item>
 7         <item>Terra</item>
 8         <item>Marte</item>
 9         <item>Xúpiter</item>
10         <item>Saturno</item>
11         <item>Urano</item>
12         <item>Neptuno</item>
13     </string-array>
14 </resources>


O XML do layout

  • É igual ao da aplicación orixinal.
 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6 
 7     <Spinner
 8         android:id="@+id/spin_planetas"
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content"
11         android:entries="@array/planetas" />
12 
13     <Button
14         android:id="@+id/btn_seleccion"
15         android:layout_width="wrap_content"
16         android:layout_height="wrap_content"
17         android:onClick="onButtonClick"
18         android:text="Preme cando selecciones" />
19 
20     <TextView
21         android:id="@+id/lbl_resultado"
22         android:layout_width="wrap_content"
23         android:layout_height="wrap_content"
24         android:text="Selecciona un planeta" />
25 
26 </LinearLayout>



Código Java

  • Ao método da aplicación orixinal engadímoslle un control: se esta seleccionada ou non a posición 0 do Spinner.
 1 package com.example.u2_15_toast;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.view.Menu;
 6 import android.view.View;
 7 import android.widget.Spinner;
 8 import android.widget.TextView;
 9 import android.widget.Toast;
10 
11 public class U2_15_Toast extends Activity {
12 
13 	@Override
14 	protected void onCreate(Bundle savedInstanceState) {
15 		super.onCreate(savedInstanceState);
16 		setContentView(R.layout.activity_u2_15__toast);
17 	}
18 
19 	@Override
20 	public boolean onCreateOptionsMenu(Menu menu) {
21 		// Inflate the menu; this adds items to the action bar if it is present.
22 		getMenuInflater().inflate(R.menu.u2_15__toast, menu);
23 		return true;
24 	}
25 
26 	public void onButtonClick(View v) {
27 		Spinner spinPlanetas = (Spinner) findViewById(R.id.spin_planetas);
28 		TextView lblResultado = (TextView) findViewById(R.id.lbl_resultado);
29 
30 		if (spinPlanetas.getSelectedItemId() == 0) {
31 			Toast.makeText(this, "Por favor selecciona un planeta",Toast.LENGTH_LONG).show();
32 			lblResultado.setText("");
33 		} else
34 
35 			lblResultado.setText("Seleccionaches "
36 					+ spinPlanetas.getSelectedItem()
37 					+ "\nque está na posición "
38 					+ spinPlanetas.getSelectedItemId());
39 	}
40 
41 }
  • Liña 30: Comprobamos se a posición seleccionada no Spinner é a 0 de ser así ...
  • Liña 31: realizamos un Toast.
  • Liña 32: Poñemos a etiqueta a baleiro.



-- Ángel D. Fernández González e Carlos Carrión Álvarez -- (2015).