Zephys
26/11/14, 23:43:57
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"
android:orientation= "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"
android:onClick= "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.
<LinearLayout xmlns:android= "http:schemas.android.comapkresandroid"
xmlns:tools= "http:schemas.android.comtools"
android:layout_width= "match_parent"
android:layout_height= "match_parent"
android:orientation= "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"
android:onClick= "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.