Autore Topic: Spinner non mostra tutti i risultati  (Letto 419 volte)

Offline Carontes

  • Nuovo arrivato
  • *
  • Post: 40
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ideos u8150
Spinner non mostra tutti i risultati
« il: 22 Ottobre 2011, 16:22:26 CEST »
0
Salve, ho popolato uno spinner in questo modo

Codice (Java): [Seleziona]
package it.gogle.com;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeSet;

public class Cars{

public static final String ALL_CARS = "All cars";

public static final String CAR = "CAR";

public static final String NAME = "NAME";

public static final String NAME1 = "NAME1";

public static final String NAME2 = "NAME2";

public static final String NAME3 = "NAME3";

public static final String CATEGORY = "CATEGORY";

private String car;

private String name;

private String name1;

private String name2;

private String name3;

private String category;

public Cars(String car, String name, String name1, String name2, String name3, String category){
    super();
    this.car = car;
    this.name = name;
    this.name1 = name1;
    this.name2 = name2;
    this.name3 = name3;
    this.category = category;}



public String getCar(){
    return car;}

public String getName(){
    return name;}

public String getName1(){
    return name1;}

public String getName2(){
    return name2;}

public String getName3(){
    return name3;}

public String getCategory(){
    return category;}

public static final Cars[] DB = new Cars[]{
 new Cars("BMW","X1","X3","X5","X6","SUV"),
 new Cars("AUDI","A1","Q7","A2","A5","OTHERS"),
 new Cars("BMW1","X3","X1","X6","X5","SUV"),
 new Cars("AUDI1","A2","Q7","A1","A5","OTHERS"),
 new Cars("BMW2","X6","X5","X3","X1","SUV"),
    };


private static ArrayList<String> names;


public static List<Map<String, String>> getData(String name, String name1, String name2, String name3){
    List<Map<String, String>> ret = new ArrayList<Map<String, String>>();
    for (Cars cars : DB){
        //l'errore dovrebbe essere qui sotto
                    if (name.equals(ALL_CARS) || name.equals(cars.getName()))
        if (name1.equals(ALL_CARS) || name1.equals(cars.getName1()))
        if (name2.equals(ALL_CARS) || name2.equals(cars.getName2()))
                    if (name3.equals(ALL_CARS) || name3.equals(cars.getName3()))

         ret.add(cars.getMap());}
    return ret;}





Map<String, String> getMap(){
    HashMap<String, String> map = new HashMap<String, String>();

    map.put(CAR, car);
    map.put(NAME, name);
    map.put(NAME1, name1);
    map.put(NAME2, name2);
    map.put(NAME3, name3);
    map.put(CATEGORY, category);
    return map;}

public static ArrayList<String> getINames(){
    if (names == null){
        TreeSet<String> set = new TreeSet<String>();
        for (Cars cars : DB){set.add(cars.getName());}
        for (Cars cars : DB){set.add(cars.getName1());}
                    for (Cars cars : DB){set.add(cars.getName2());}
                    for (Cars cars : DB){set.add(cars.getName3());}

        names = new ArrayList<String>();
        names.addAll(set);}
    return names;}}

Il mio problema è che se clicco sullo spinner l'item "X1" come risultato mi da solo "BMW" e non anche "BMW1" e "BMW2" come dovrebbe essere. Poi a secondo di come modifico il codice (dove ho scritto che forse è lì il problema) mi visualizza solo un risultato e non tutti (dipende in che posizione si trova l'item che ho scelto all'interno della stringa new Cars). Quello che vorrei io è invece poter visualizzare tutti i risultati senza tener conto in che posizione ho inserito i dati. Il codice fuziona se ho un solo "String Name" ed il codice cambierebbe perchè dovrei aggiungere {}
Codice (Java): [Seleziona]
if (name.equals(ALL_CARS) || name.equals(cars.getName())){
ret.add(cars.getMap());}}
. Qualcuno mi potrebbe aiutare. Grazie mille.
« Ultima modifica: 26 Ottobre 2011, 16:01:18 CEST da Carontes »