Diferencia entre revisiones de «Toast»

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

Revisión actual del 09:10 28 jul 2015

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:
Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, text, duration);
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:
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:
<?xml version="1.0" encoding="utf-8"?>
<resources>
     <string-array name="planetas">
        <item>Selecciona un planeta</item>
        <item>Mercurio</item>
        <item>Venus</item>
        <item>Terra</item>
        <item>Marte</item>
        <item>Xúpiter</item>
        <item>Saturno</item>
        <item>Urano</item>
        <item>Neptuno</item>
    </string-array>
</resources>


O XML do layout

  • É igual ao da aplicación orixinal.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Spinner
        android:id="@+id/spin_planetas"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:entries="@array/planetas" />

    <Button
        android:id="@+id/btn_seleccion"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onButtonClick"
        android:text="Preme cando selecciones" />

    <TextView
        android:id="@+id/lbl_resultado"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Selecciona un planeta" />

</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.
package com.example.u2_15_toast;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class U2_15_Toast extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_u2_15__toast);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.u2_15__toast, menu);
		return true;
	}

	public void onButtonClick(View v) {
		Spinner spinPlanetas = (Spinner) findViewById(R.id.spin_planetas);
		TextView lblResultado = (TextView) findViewById(R.id.lbl_resultado);

		if (spinPlanetas.getSelectedItemId() == 0) {
			Toast.makeText(this, "Por favor selecciona un planeta",Toast.LENGTH_LONG).show();
			lblResultado.setText("");
		} else

			lblResultado.setText("Seleccionaches "
					+ spinPlanetas.getSelectedItem()
					+ "\nque está na posición "
					+ spinPlanetas.getSelectedItemId());
	}

}
  • 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).