2011-07-27 6 views
7

UI 디자인을 위해 expandableListView를 사용하고 있습니다. 그래서 Android 확장형 목록보기에 대해 궁금합니다. 목록 항목을 하나만 확장하도록 허용하는 방법이 있습니다. 즉, 항목을 클릭하고 확장 할 때 다른 모든 항목이 자동으로 축소됩니다.Expandable ListView

감사

+1

사용 답 : // 유래합니다. com/questions/4314777/programmatically-collapse-a-group-in-expandablelistview – Londeren

+1

나는 당신이 찾고있는 것을 수행하는 또 다른 질문에 몇 가지 코드를 넣었습니다. http : //stackoverflow.com/questions/4314777/programmatically-collapse- a-group-in-expandablelistview/4315162 # 4315162 – danh32

답변

10

당신은 당신이 루프 나머지를 통해 방금 클릭 한 일을 제외하고 각각을 축소 할 수 하나 개의 항목을 ... 클릭하면

list.setOnGroupExpandListener(new OnGroupExpandListener() { 

    public void onGroupExpand(int groupPosition) { 
     int len = mAdapter.getGroupCount(); 

     for(int i=0; i<len; i++) { 
      if(i != groupPosition) { 
       list.collapseGroup(i); 
      } 
     } 
    } 

}); 
1
당신은 키 에런이 제안 할 경우, 또는 수

한 번에 하나만 열어두면 마지막으로 클릭 한 것을 추적 할 수 있습니다. 클래스 본체에 int lastclicked을 선언 한 다음 청취자가 한국어로 제안 함으로이 작업을 수행 할 수 있습니다. list.collapseGroup(lastclicked)

코드 예제를 제공하지만 모바일에 있습니다. 죄송합니다.

하지만 개인적으로 for 루프를 사용하는 것보다 lastclicked 메서드를 사용하는 것을 선호합니다. 더 효율적인 것 같습니다. 모든

0

첫째는 기본 방법을 추가 할 수 있습니다 귀하의 활동에 OnGroupExpandListener을 구현하고, 이후에이 같이 할 필요가있는 기본 방법 추가 : HTTP에서

@Override 
    public void onGroupExpand(int groupPosition) { 
     // TODO Auto-generated method stub 
     int len = expadapter.getGroupCount();   
     for(int i=0;i<len;i++) 
     { 
      if(i!=groupPosition) 
      { 
       expandlst.collapseGroup(i); 
      } 
     } 
    }