Расширенное представление, требуемое для расширения строки по очереди

Im, используя расширенный список в моем проекте, мне нужно развернуть список только по одному, т. Е. Я разворачиваю элемент, а когда пытаюсь развернуть другой элемент в списке, предыдущий элемент, который я расширил, должен свернуть, а новый элемент щелкнул, Для расширения, Ответы будут высоко оценены, я пытаюсь использовать нижеприведенный фрагмент для прослушивателя кликов.

convertViewpar.setOnClickListener(new OnClickListener() { int i=1; public void onClick(View v) { i = i++; int[] expds = new int[100]; expds[0]=0; expds[i] = groupPosition; if(expds[i]==expds[i-1]){ if(isExpanded) expandlist.collapseGroup(i); else expandlist.expandGroup(i); }else{ expandlist.collapseGroup(i-1); if(isExpanded) expandlist.collapseGroup(i); else expandlist.expandGroup(i); } } }); 

Добавить реализует OnGroupExpandListener на уровне класса и в методе onCreate

  listView.setOnGroupExpandListener(this); 

И добавьте этот метод

 /* * (non-Javadoc) * * @see * android.widget.ExpandableListView.OnGroupExpandListener#onGroupExpand * (int) */ public void onGroupExpand(int groupPosition) { int len = expListAdapter.getGroupCount(); for (int i = 0; i < len; i++) { if (i != groupPosition) { listView.collapseGroup(i); } } } 

Он будет работать определенно.

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

  expList.setOnGroupClickListener(new OnGroupClickListener() { public boolean onGroupClick(ExpandableListView arg0, View arg1, int arg2, long arg3) { int count = yourAdapter.getGroupCount(); for (int i = 0; i <count ; i++) if(arg2!=i) exp.collapseGroup(i); else exp.expandGroup(i); return false; } }); 

Или в соответствии с этим решением, программно свернуть группу в ExpandableListView ,

 @Override public void onGroupExpanded(int groupPosition){ //collapse the old expanded group, if not the same //as new group to expand if(groupPosition != lastExpandedGroupPosition){ accordion.collapseGroup(lastExpandedGroupPosition); } super.onGroupExpanded(groupPosition); lastExpandedGroupPosition = groupPosition; }