Πώς να προσθέσετε το στοιχείο του παιδιού επεκτάσιμη ListView χωρίς Dublicate listheader δεδομένων αντικειμένου

ψήφοι
18

Έχω ένα πρόβλημα στο Android. Έχω μια λίστα. Για παράδειγμα, το όνομα είναι η λίστα? ListModel έχει μια ταυτότητα, όνομα ..

Και τα δεδομένα μου είναι,

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

Γι 'αυτό θέλουν να χρησιμοποιήσουν αυτά τα δεδομένα σε expandableListView στο Android. Αλλά χωρίς διπλότυπο όνομα. Αυτό σημαίνει ότι θέλω να δείξω Α, Β, Γ και όταν κάνω κλικ στο A, θέλω να δείτε id όλα μια στην παιδιού .. Για παράδειγμα είναι?

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

Πως μπορώ να το κάνω αυτό? Ευχαριστώ πολύ.

Δημοσιεύθηκε 23/09/2016 στις 09:35
χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

Δοκιμάστε αυτόν τον κώδικα,

// 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());

Αν κάποιος έχει μια καλύτερη λύση παρακαλώ μοιραστείτε.

Απαντήθηκε 23/09/2016 στις 10:11
πηγή χρήστη

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