|
Avisos |
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
|
Herramientas |
#1
|
||||
|
||||
Como generar un toast al seleccionar en un Spinner
Buenas tardes. Estoy comenzando en la programación android y me encuentro con bastantes problemas. El problema principal es que intento que se genere un toast al seleccionar una opcion en un spinner. Consigo que se lance si se pulsa un boton, pero la idea es que al seleccionar la opcion en el spinner lance el toast directamente con un mensaje como "has seleccionado x". El codigo de la activitie es:
<LinearLayout xmlns:android= "http:schemas.android.comapkresandroid" xmlns:tools= "http:schemas.android.comtools" android:layout_width= "match_parent" android:layout_height= "match_parent" androidrientation= "vertical" > <Spinner android:id= "@+idspin_planetas" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:entries= "@arrayplanetas" > <Button android:id= "@+idbtn_seleccion" android:layout_width= "wrap_content" android:layout_height= "wrap_content" androidnClick= "onButtonClick" android:text= "Preme cando selecciones" > <TextView android:id= "@+idlbl_resultado" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:text= "Selecciona un planeta" > <LinearLayout> El codigo del array sería: <?xml version= "1.0" encoding= "utf-8" ?> <resources> <string-array name= "planetas" > <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> Y el codigo que tengo hasta ahora en java es: package com.example.u2_12_spinner ; import android.app.Activity ; import android.os.Bundle ; import android.view.Menu ; import android.view.View ; import android.widget.AdapterView ; import android.widget.AdapterView.OnItemSelectedListener ; import android.widget.Spinner ; import android.widget.TextView ; public class U2_12_Spinner extends Activity { @Override protected void onCreate (Bundle savedInstanceState ) { super. onCreate (savedInstanceState ) ; setContentView (R. layout. activity_u2_12__spinner ) ; Spinner spinPlanetas = (Spinner ) findViewById (R. id. spin_planetas ) ; spinPlanetas. setOnItemSelectedListener ( new OnItemSelectedListener ( ) { @Override public void onItemSelected (AdapterView <?> parent, View view, int pos, long id ) { TODO Auto-generated method stub TextView lblResultado = (TextView ) findViewById (R. id. lbl_resultado ) ; lblResultado. setText ( "Seleccionaches " + parent. getItemAtPosition (pos ) + " que está na posición " + pos ) ; } @Override public void onNothingSelected (AdapterView <?> arg0 ) { TODO Auto-generated method stub } } ) ; } @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_12__spinner, menu ) ; return true ; } public void onButtonClick ( View v ) { Spinner spinPlanetas = (Spinner ) findViewById (R. id. spin_planetas ) ; TextView lblResultado = (TextView ) findViewById (R. id. lbl_resultado ) ; lblResultado. setText ( "Seleccionaches " + spinPlanetas. getSelectedItem ( ) + " que está na posición " + spinPlanetas. getSelectedItemId ( ) ) ; } } Lo que hace está aplicación hasta ahora es que cuando seleccionamos una opcion en el spinner escribe un mensaje indicando que nombre has elegido y la posición en la que se encuentra en el spinner. Ahora me gustaría que por ejemplo devuelva el mensaje "Has seleccionado X" pero en un toast. Alguien sabe como solucionarlos? Muchas gracias por adelantado. |
|
#2
|
||||
|
||||
Te refieres a esto:
Código:
Toast.makeText(this, "Tu texto", Toast.LENGH_SHORT).show();
__________________
Desarrollador Android
http://www.hermosaprogramacion.com/ |
#3
|
||||
|
||||
Si, ese es el codigo del toast, el problema que tengo es que no se como aplicarlo a mi codigo para que al hacer una selección en el spinner salga el toast directamente.
|
#4
|
||||
|
||||
Antes de leer la respuesta estaría bien que comprendieras por qué se hace cada cosa.
Además, si vas a publicar código en el foro te recomiendo que lo hagas utilizando las etiquetas [ CODE], de modo que quede debidamente formateado Dicho esto, en el código Código:
Spinner spinPlanetas = (Spinner ) findViewById (R.id.spin_planetas ) ; Código:
spinPlanetas. setOnItemSelectedListener ( new OnItemSelectedListener ( ) { // Este método es llamado cuando se selecciona un item en el spinner @Override public void onItemSelected (AdapterView <?> parent, View view,int pos, long id ) { // Aquí te estás guardando un TextView donde mostrarás el resultado TextView lblResultado = (TextView ) findViewById (R.id.lbl_resultado ) ; // Aquí, al TextView que acabas de guardarte, le asignas el item seleccionado lblResultado. setText ( "Seleccionaches " + parent. getItemAtPosition (pos ) + " que está na posición " + pos ) ; // Por tanto, aquí es donde deberías poner tu Toast } @Override public void onNothingSelected (AdapterView <?> arg0 ) { // TODO Auto-generated method stub } } ) ;
__________________
|
#5
|
||||
|
||||
Resulta que realmente estaba poniendo bien el toast, pero no estaba definiendo las variables ni los nombres correctamente, por eso no generaba el toast correctamente. Muchas gracias por la ayuda.
|
Estás aquí | ||||||
|