Hogyan adjunk bővíthető ListView gyermeke elem nélkül Dublicate objektum adatok listheader

szavazat
18

Nekem van egy probléma az Android. Van egy lista. Például neve listán; ListModel van, nevet ..

És az adataim,

list.get(0).getName(); // name = A
list.get(0).getId(); // id = 1
list.get(1).getName(); // name = B
list.get(1).getId(); // id = 2
list.get(2).getName(); // name = C
list.get(2).getId(); // id = 3
list.get(3).getName(); // name = A
list.get(3).getId(); // id = 4
list.get(4).getName(); // name = B
list.get(4).getId(); // id = 5

Tehát szeretném használni az adatokat expandableListView Android. De anélkül, hogy ugyanolyan név. Ez azt jelenti, meg akarom mutatni, csak A, B, C, és amikor rákattintok az A, látni akarom az összes A. id gyermek .. Például van;

A -->1,4
B -->2,5
C -->3

Hogyan tehetem ezt meg? Nagyon köszönöm.

A kérdést 23/09/2016 09:35
felhasználó
Más nyelveken...                            


1 válasz

szavazat
0

Próbáld ki ezt a kódot,

// This is your data
ArrayList<ListModel> list = new ArrayList<>();
list.add(new ListModel("A", "1"));
list.add(new ListModel("B", "2"));
list.add(new ListModel("C", "3"));
list.add(new ListModel("A", "4"));
list.add(new ListModel("B", "5"));

// Create a list of keys (A, B, C)
Set<String> keys = new HashSet<>();
for (ListModel item : list) {
    keys.add(item.getName());
}

// The final dataset
Map<String, List<String>> dataset = new HashMap<>();
for (String key : keys) {
    List<String> subItems = new ArrayList<>();
    for (ListModel item : list) {
        if(item.getName().equals(key)){
            subItems.add(item.getId());
        }
    }
    dataset.put(key, subItems);
}
Log.e(TAG, dataset.toString());

Ha valakinek van jobb megoldás kérem megosztani.

Válaszolt 23/09/2016 10:11
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more