2011-09-16 10 views
1

그룹이 확장되면 내 그룹 행에서 이미지 뷰를 변경하는 방법이 있습니까?Android 확장형 목록 확장시

나는 코드를 통해이를 수행 할 방법을 찾고있다. 이것은 내가 지금 사용하려고 시도하고있는 무슨이지만, 사용자 정의 BaseExpandableListAdapter를 사용하여 이미지

private static final int[] EMPTY_STATE_SET = {}; 
    private static final int[] GROUP_EXPANDED_STATE_SET = {android.R.attr.state_expanded}; 
    private static final int [] [] GROUP_STATE_SETS = { 
     EMPTY_STATE_SET, //0 
     GROUP_EXPANDED_STATE_SET //1 
    }; 

    public View getGroupView (int groupPosition, 
     boolean isExpanded, 
     View convertView, 
     ViewGroup parent) { 

     View v = getGroupView(groupPosition, isExpanded, convertView, parent); 
     View ind = v.findViewById(R.id.explist_indicator); 
     if(ind != null){ 
      ImageView indicator = (ImageView) ind; 
      indicator.setVisibility(View.VISIBLE); 
      int stateSetIndex = (isExpanded ? 1:0); 
      Drawable drawable = indicator.getDrawable(); 
      drawable.setState(GROUP_STATE_SETS[stateSetIndex]); 
     } 
     return v; 
    } 
+0

나는 메소드 코드에 혼란 스럽다. 그냥 무한 루프에 들어 가지 않는가? getGroupView의 최초의 행에'getGroupView'를 호출하고 있습니다. –

+0

슈퍼를 넣는 것을 잊어 버렸습니다. 그 첫 번째의 infront getGroupView – Somk

+0

그냥 내 대답을 시도하고 효과. 'convertView'의 인플레이션을 직접 처리해보십시오. null 인 경우'LayoutInflater'를 사용하고'v' 대신 'LayoutInflater'를 사용하십시오. –

답변

0

를 교환하지 않습니다 어떤 조언

편집에 대한

건배. getGroupView을 재정의하고 isExpanded 부울 매개 변수를 사용하여 그룹보기가 확장 된시기를 식별하고 이에 따라 ImageView을 설정합니다.

+0

답장을 보내 주셔서 감사합니다. 나는 실제 ImageView가 아니라 그룹 표시기 자체를 의미합니다. – Somk

+0

죄송합니다. 질문을 잘못 읽었습니다. 답변을 업데이트하겠습니다. 덕분에 –

+0

. 나는 이것을 시도하고 내가 사용하고있는 코드를 게시 할 것이다. listview가 펼쳐지거나 접힐 때 변경되지 않는 것 같습니다. – Somk