PDA

Ver la Versión Completa : [ CONSULTA ] Problema con Spinner y distintos Adapters.


Bongiovi
10/08/13, 15:01:04
Tengo un Spinner (bueno, son dos, pero muestran el mismo contenido). El adapter que rellena el Spinner varía en función de la selección que se hace en un ListView en una Activity anterior.

Lo que hago es pasar el String que se ha seleccionado en la ListView en un Intent, y después esto:

if (prenda == "Calzado (Hombre)")
{
paises1Adapt = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, paisesCalzHom);
paises2Adapt = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, paisesCalzHom);
}
else
{
paises1Adapt = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, paisesGenArray);
paises2Adapt = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, paisesGenArray);
}

El "if then else" está reducido a la mínima expresión hasta que funcione bien xD
El caso es que siempre se muestra el contenido del "else". He comprado que se pasa bien la información en el intent, parece que el problema está en el if-then-else.
Solución?

Saludos y gracias.

kriogeN
10/08/13, 15:20:20
Es un error muy típico usar == para comparar Strings, ya que el resto de lenguajes parecidos a Java (como C#) lo admiten.

Usar == sólo vale para objetos primitivos (aquellos que su primera letra es minúscula, como por ejemplo int, float, boolean...). Para el resto de objetos debes usar "compareTo" o "equals"

En tu caso sería:

if (prenda.equals("Calzado (Hombre)")

Bongiovi
10/08/13, 15:23:37
Es un error muy típico usar == para comparar Strings, ya que el resto de lenguajes parecidos a Java (como C#) lo admiten.

Usar == sólo vale para objetos primitivos (aquellos que su primera letra es minúscula, como por ejemplo int, float, boolean...). Para el resto de objetos debes usar "compareTo" o "equals"

En tu caso sería:

if (prenda.equals("Calzado (Hombre)")

A mi me han enseñado C, Java lo he aprendido por mi cuenta. Estas cosas se me pasan casi siempre xD

Muchas gracias por la respuesta, un saludo!