Diferencia entre revisiones de «Toast»
Ir a la navegación
Ir a la búsqueda
(Página creada con «==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 ap...») |
|||
| Línea 34: | Línea 34: | ||
==Caso práctico== | ==Caso práctico== | ||
| − | * | + | |
| − | *Collendo como base a primeira versión da aplicación dos planetas: | + | * Partimos que xa temos creado o proxecto inicial como [http://wiki.cifprodolfoucha.es/index.php?title=PDM_Creando_proxecto_base xa indicamos anteriormente]. |
| + | : Se non o temos creado antes, crea un paquete de nome '''UI''' como un subpaquete do teu paquete principal. | ||
| + | : Dentro do paquete UI, crearemos un novo paquete de nome: '''Toasts'''. | ||
| + | |||
| + | |||
| + | <br /> | ||
| + | * Dentro do paquete '''Toasts''' crear unha nova 'Empty Activity' de nome: '''UD02_01_Toast''' de tipo Launcher e sen compatibilidade. | ||
| + | : Modifica o arquivo '''AndroidManifiest.xml''' e engade unha label á activity como [http://wiki.cifprodolfoucha.es/index.php?title=PDM_Creando_proxecto_base xa vimos na creación do proxecto base]. | ||
| + | |||
| + | |||
| + | |||
| + | *Collendo como base a primeira versión da aplicación dos planetas: [http://wiki.cifprodolfoucha.es/index.php?title=Spinner#Caso_pr.C3.A1ctico U2_12_Spinner]. | ||
*Simplemente agora a nova aplicación ten unha entrada máis ao principio do Spinner '''Selecciona un planeta'''. | *Simplemente agora a nova aplicación ten unha entrada máis ao principio do Spinner '''Selecciona un planeta'''. | ||
| Línea 52: | Línea 63: | ||
*Engadimos un ítem ao principio: | *Engadimos un ítem ao principio: | ||
| − | <syntaxhighlight lang="xml" line enclose="div" highlight=" | + | <syntaxhighlight lang="xml" line enclose="div" highlight="15,16" > |
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
<resources> | <resources> | ||
| − | + | ||
| + | <string-array name="planetas_UD02_01_spinner"> | ||
| + | <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> | ||
| + | |||
| + | <string-array name="planetas_UD02_01_toast"> | ||
<item>Selecciona un planeta</item> | <item>Selecciona un planeta</item> | ||
<item>Mercurio</item> | <item>Mercurio</item> | ||
| Línea 70: | Línea 93: | ||
| + | <br /> | ||
===O XML do layout=== | ===O XML do layout=== | ||
| − | *É igual ao da aplicación orixinal. | + | *É igual ao da aplicación orixinal, cambiando a fonte de datos do spinner e actualizando os id´s dos controis. |
| − | <syntaxhighlight lang="xml" line enclose="div" highlight="" > | + | <syntaxhighlight lang="xml" line enclose="div" highlight="19" > |
| − | < | + | <?xml version="1.0" encoding="utf-8"?> |
| + | <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| + | xmlns:app="http://schemas.android.com/apk/res-auto" | ||
xmlns:tools="http://schemas.android.com/tools" | xmlns:tools="http://schemas.android.com/tools" | ||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||
android:layout_height="match_parent" | android:layout_height="match_parent" | ||
| − | + | tools:context=".UI.Toasts.UD02_01_Toast"> | |
| − | < | + | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| − | + | xmlns:tools="http://schemas.android.com/tools" | |
| − | android:layout_width=" | + | android:layout_width="match_parent" |
| − | android:layout_height=" | + | android:layout_height="match_parent" |
| − | android: | + | android:orientation="vertical" > |
| − | + | <Spinner | |
| − | + | android:id="@+id/spnPlanetas_UD02_01_Toast" | |
| − | + | android:layout_width="wrap_content" | |
| − | + | android:layout_height="wrap_content" | |
| − | + | android:entries="@array/planetas_UD02_01_toast" /> | |
| − | |||
| − | + | <Button | |
| − | + | android:id="@+id/btnSeleccion_UD02_01_Toast" | |
| − | + | android:layout_width="wrap_content" | |
| − | + | android:layout_height="wrap_content" | |
| − | + | android:onClick="onButtonClick" | |
| + | android:text="Preme cando selecciones" /> | ||
| − | </LinearLayout> | + | <TextView |
| + | android:id="@+id/tvResultado_UD02_01_Toast" | ||
| + | android:layout_width="wrap_content" | ||
| + | android:layout_height="wrap_content" | ||
| + | android:text="Selecciona un planeta" /> | ||
| + | |||
| + | </LinearLayout> | ||
| + | </android.support.constraint.ConstraintLayout> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | + | <br /> | |
===Código Java=== | ===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. | *Ao método da aplicación orixinal engadímoslle un control: se esta seleccionada ou non a posición 0 do Spinner. | ||
| − | <syntaxhighlight lang="java" line enclose="div" highlight=" | + | <syntaxhighlight lang="java" line enclose="div" highlight="18-20" > |
| − | package | + | package es.cursoandroid.cifprodolfoucha.aprendiendo.UI.Toasts; |
import android.app.Activity; | import android.app.Activity; | ||
import android.os.Bundle; | import android.os.Bundle; | ||
| − | |||
import android.view.View; | import android.view.View; | ||
import android.widget.Spinner; | import android.widget.Spinner; | ||
| Línea 119: | Línea 151: | ||
import android.widget.Toast; | import android.widget.Toast; | ||
| − | + | import es.cursoandroid.cifprodolfoucha.aprendiendo.R; | |
| − | + | public class UD02_01_Toast extends Activity { | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | public void onButtonClick(View v) { | |
| − | + | Spinner spinPlanetas = (Spinner) findViewById(R.id.spnPlanetas_UD02_01_Toast); | |
| − | + | TextView lblResultado = (TextView) findViewById(R.id.tvResultado_UD02_01_Toast); | |
| − | |||
| − | |||
| − | |||
| − | + | 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()); | |
| + | } | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | @Override | ||
| + | protected void onCreate(Bundle savedInstanceState) { | ||
| + | super.onCreate(savedInstanceState); | ||
| + | setContentView(R.layout.activity_ud02_01__toast); | ||
| + | } | ||
} | } | ||
| + | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | *'''Liña | + | *'''Liña 18''': Comprobamos se a posición seleccionada no Spinner é a 0 de ser así ... |
| − | *'''Liña | + | *'''Liña 19''': realizamos un Toast. |
| − | *'''Liña | + | *'''Liña 20''': Poñemos a etiqueta a baleiro. |
| + | |||
| + | |||
<br> -- [[Usuario:angelfg|Ángel D. Fernández González]] e [[Usuario:Carrion|Carlos Carrión Álvarez]] -- (2015). | <br> -- [[Usuario:angelfg|Ángel D. Fernández González]] e [[Usuario:Carrion|Carlos Carrión Álvarez]] -- (2015). | ||
Revisión del 12:00 12 oct 2018
Sumario
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.
- 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();
- Referencias:
Caso práctico
- Partimos que xa temos creado o proxecto inicial como xa indicamos anteriormente.
- Se non o temos creado antes, crea un paquete de nome UI como un subpaquete do teu paquete principal.
- Dentro do paquete UI, crearemos un novo paquete de nome: Toasts.
- Dentro do paquete Toasts crear unha nova 'Empty Activity' de nome: UD02_01_Toast de tipo Launcher e sen compatibilidade.
- Modifica o arquivo AndroidManifiest.xml e engade unha label á activity como xa vimos na creación do proxecto base.
- 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.
- Autodestrucción
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
4 <string-array name="planetas_UD02_01_spinner">
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
15 <string-array name="planetas_UD02_01_toast">
16 <item>Selecciona un planeta</item>
17 <item>Mercurio</item>
18 <item>Venus</item>
19 <item>Terra</item>
20 <item>Marte</item>
21 <item>Xúpiter</item>
22 <item>Saturno</item>
23 <item>Urano</item>
24 <item>Neptuno</item>
25 </string-array>
26 </resources>
O XML do layout
- É igual ao da aplicación orixinal, cambiando a fonte de datos do spinner e actualizando os id´s dos controis.
1 <?xml version="1.0" encoding="utf-8"?>
2 <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 xmlns:tools="http://schemas.android.com/tools"
5 android:layout_width="match_parent"
6 android:layout_height="match_parent"
7 tools:context=".UI.Toasts.UD02_01_Toast">
8
9 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
10 xmlns:tools="http://schemas.android.com/tools"
11 android:layout_width="match_parent"
12 android:layout_height="match_parent"
13 android:orientation="vertical" >
14
15 <Spinner
16 android:id="@+id/spnPlanetas_UD02_01_Toast"
17 android:layout_width="wrap_content"
18 android:layout_height="wrap_content"
19 android:entries="@array/planetas_UD02_01_toast" />
20
21 <Button
22 android:id="@+id/btnSeleccion_UD02_01_Toast"
23 android:layout_width="wrap_content"
24 android:layout_height="wrap_content"
25 android:onClick="onButtonClick"
26 android:text="Preme cando selecciones" />
27
28 <TextView
29 android:id="@+id/tvResultado_UD02_01_Toast"
30 android:layout_width="wrap_content"
31 android:layout_height="wrap_content"
32 android:text="Selecciona un planeta" />
33
34 </LinearLayout>
35 </android.support.constraint.ConstraintLayout>
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 es.cursoandroid.cifprodolfoucha.aprendiendo.UI.Toasts;
2
3 import android.app.Activity;
4 import android.os.Bundle;
5 import android.view.View;
6 import android.widget.Spinner;
7 import android.widget.TextView;
8 import android.widget.Toast;
9
10 import es.cursoandroid.cifprodolfoucha.aprendiendo.R;
11
12 public class UD02_01_Toast extends Activity {
13
14 public void onButtonClick(View v) {
15 Spinner spinPlanetas = (Spinner) findViewById(R.id.spnPlanetas_UD02_01_Toast);
16 TextView lblResultado = (TextView) findViewById(R.id.tvResultado_UD02_01_Toast);
17
18 if (spinPlanetas.getSelectedItemId() == 0) {
19 Toast.makeText(this, "Por favor selecciona un planeta",Toast.LENGTH_LONG).show();
20 lblResultado.setText("");
21 } else
22
23 lblResultado.setText("Seleccionaches "
24 + spinPlanetas.getSelectedItem()
25 + "\nque está na posición "
26 + spinPlanetas.getSelectedItemId());
27 }
28
29
30 @Override
31 protected void onCreate(Bundle savedInstanceState) {
32 super.onCreate(savedInstanceState);
33 setContentView(R.layout.activity_ud02_01__toast);
34 }
35 }
- Liña 18: Comprobamos se a posición seleccionada no Spinner é a 0 de ser así ...
- Liña 19: realizamos un Toast.
- Liña 20: Poñemos a etiqueta a baleiro.
-- Ángel D. Fernández González e Carlos Carrión Álvarez -- (2015).
