2016-12-23 1 views
0

У меня есть вид расширяемого списка с родительским списком, отображающим имена магазинов. Детский элемент должен быть первой строкой адреса, по одному на каждом. В настоящее время код правильно устанавливает родительский элемент, однако каждый родительский элемент содержит все дочерние элементы, а не только те, которые относятся к нему.добавление разных дочерних списков для каждого родителя в ExpandableListView для Android?

Любые идеи?

private void prepareListData() { 
    listDataHeader = new ArrayList<String>(); 
    listDataChild = new HashMap<String, List<String>>(); 
     //System.out.println(debugName.get(i)); 

    List<String> top250 = new ArrayList<String>(); 


for (int i = 0; i < debugName.size(); i++) { 

    storeName = debugName.get(i); 
    listDataHeader.add(storeName); 
    listDataChild.put(listDataHeader.get(0), top250); 

// Хранить имя надлежащим образом: Хранить 1, Хранить 2, Хранить 3 и т. Д. Для каждого родительского элемента.

} 

    for (int i = 0; i < address1.size(); i++) { 
     storeAddress = address1.get(i); 

     System.out.println(storeAddress); 

// адрес магазина печатает адрес для магазина 1, 2, 3 по каждому родителю

 top250.add(storeAddress); 


     listDataChild.put(listDataHeader.get(i), top250); 

    } 

ответ

0

Не видя больше исходного кода, он смотрит на меня, как вы добавляете все магазин адреса - top250.

listDataChild.put(listDataHeader.get(i), top250) поэтому назначает все адреса магазина под каждым заголовком каждый раз.

Попробуйте изменить эту строку на listDataChild.put(listDataHeader.get(i), top250.get(i)) и посмотрите, подходит ли она к тому, что вы хотели.

Конечно, это может быть и не так, как вы ожидаете, потому что это предполагает, что каждый заголовок имеет ровно один адрес и что элементы listDataHeader сопоставляются с каждым пунктом , но вы можете начать с этого момента.