कैसे dublicate वस्तु डेटा listheader बिना विस्तार योग्य ListView के बच्चे आइटम जोड़ने के लिए

वोट
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 में इस डेटा का उपयोग करना चाहते हैं। लेकिन बिना नाम नकल। इसका मतलब है कि मैं सिर्फ ए, बी, सी दिखाना चाहते हैं और जब मैं एक पर क्लिक करें, मैं बच्चे के सभी एक के आईडी देखना चाहते हैं .. उदाहरण है के लिए;

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