Salve, ho popolato uno spinner in questo modo
x1package it.gogle.com;
2
3import java.util.ArrayList;
4import java.util.HashMap;
5import java.util.List;
6import java.util.Map;
7import java.util.TreeSet;
8
9public class Cars{
10
11public static final String ALL_CARS = "All cars";
12
13public static final String CAR = "CAR";
14
15public static final String NAME = "NAME";
16
17public static final String NAME1 = "NAME1";
18
19public static final String NAME2 = "NAME2";
20
21public static final String NAME3 = "NAME3";
22
23public static final String CATEGORY = "CATEGORY";
24
25private String car;
26
27private String name;
28
29private String name1;
30
31private String name2;
32
33private String name3;
34
35private String category;
36
37public Cars(String car, String name, String name1, String name2, String name3, String category){
38super();
39this.car = car;
40this.name = name;
41this.name1 = name1;
42this.name2 = name2;
43this.name3 = name3;
44this.category = category;}
45
46public String getCar(){
47return car;}
48
49public String getName(){
50return name;}
51
52public String getName1(){
53return name1;}
54
55public String getName2(){
56return name2;}
57
58public String getName3(){
59return name3;}
60
61public String getCategory(){
62return category;}
63
64public static final Cars[] DB = new Cars[]{
65new Cars("BMW","X1","X3","X5","X6","SUV"),
66new Cars("AUDI","A1","Q7","A2","A5","OTHERS"),
67new Cars("BMW1","X3","X1","X6","X5","SUV"),
68new Cars("AUDI1","A2","Q7","A1","A5","OTHERS"),
69new Cars("BMW2","X6","X5","X3","X1","SUV"),
70};
71
72private static ArrayList<String> names;
73
74public static List<Map<String, String>> getData(String name, String name1, String name2, String name3){
75List<Map<String, String>> ret = new ArrayList<Map<String, String>>();
76for (Cars cars : DB){
77//l'errore dovrebbe essere qui sotto
78if (name.equals(ALL_CARS) || name.equals(cars.getName()))
79if (name1.equals(ALL_CARS) || name1.equals(cars.getName1()))
80if (name2.equals(ALL_CARS) || name2.equals(cars.getName2()))
81if (name3.equals(ALL_CARS) || name3.equals(cars.getName3()))
82
83ret.add(cars.getMap());}
84return ret;}
85
86Map<String, String> getMap(){
87HashMap<String, String> map = new HashMap<String, String>();
88
89map.put(CAR, car);
90map.put(NAME, name);
91map.put(NAME1, name1);
92map.put(NAME2, name2);
93map.put(NAME3, name3);
94map.put(CATEGORY, category);
95return map;}
96
97public static ArrayList<String> getINames(){
98if (names == null){
99TreeSet<String> set = new TreeSet<String>();
100for (Cars cars : DB){set.add(cars.getName());}
101for (Cars cars : DB){set.add(cars.getName1());}
102for (Cars cars : DB){set.add(cars.getName2());}
103for (Cars cars : DB){set.add(cars.getName3());}
104
105names = new ArrayList<String>();
106names.addAll(set);}
107return 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 {....}
21if (name.equals(ALL_CARS) || name.equals(cars.getName())){
2ret.add(cars.getMap());}}
Qualcuno mi potrebbe aiutare. Grazie mille.