2013-05-05 5 views
0

Привет, ребята, я пытаюсь изменить значение родителя, щелкнув дочерний элемент в расширяемом списке. Я искал решение, но не нашел ничего.Изменение значения родителя, щелкнув дочерний элемент в расширяемом виде списка

public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int    childPosition, long id){ 
      ExpandableListAdapter itemAdapter = parent.getExpandableListAdapter(); 
      String selectedItem = (String)itemAdapter.getChild(groupPosition, childPosition); 
      groupHeader(selectedItem); 
      if(parent.isGroupExpanded(groupPosition)){ 
       parent.collapseGroup(groupPosition); 
      } 

      return true; 
     } 

    }); 

ответ

0

РасширяемыйListView зависит от адаптера, чтобы получить его значения. Эти значения исходят из какой-то структуры данных, часто ArrayList или даже простого массива. В своем onChildClick() передайте ссылку на структуру данных, используемую для сборки ExpandableListAdapter, и измените структуру данных напрямую, а затем вызовите notifyDataSetChanged().

public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) 
{ 
     ExpandableListAdapter itemAdapter = parent.getExpandableListAdapter(); 
     String selectedItem = (String)itemAdapter.getChild(groupPosition, childPosition); 
     groupHeader(selectedItem); 
     if(parent.isGroupExpanded(groupPosition)) 
     { 
      parent.collapseGroup(groupPosition); 
     } 
     // your logic here 
     // expandableListArrayList.add() or expandableListArrayList.remove() 
     // or whatever 
     itemAdapter.notifyDataSetChanged(); 

     return true; 
    } 
}); 

Возможно, вам необходимо расширить адаптер, чтобы создать необходимую функциональность. Ваш вопрос немного туман, потому что я не вижу общую структуру вашего кода, но это должно дать вам начало работы.

Смежные вопросы