0

내 응용 프로그램에서 ListView를 사용하고 있습니다. 실행 중에 목록 머리글을 변경해야합니다.ListView의 어댑터를 제거하는 방법

    if (mGroupMembersList != null) { 
        mGroupMembersList = null; 
        MTListView tempListView = (MTListView) this.findViewById(R.id.groupMembersList);         
        tempListView.addHeaderView(getHeaderView(headerTitle));     
        tempListView.setAdapter(groupMembersAdapter); 
        mGroupMembersList = tempListView; 
       } 

을하지만

tempListView.addHeaderView(getHeaderView(headerTitle)); 

에 도달 할 때 그것이 해결 될 수있는 방법

java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called. 

발생 - 다음 코드에서 그렇게하기 위해 노력하고있어?

답변

0

전체 코드를 제공하지 않았기 때문에 기존 코드를 수정하는 방법을 알 수 없습니다. 여기 내가 내 문제에 대한 답을 발견했다 목록보기

//add header to list 
    ListView lv = getListView(); 
    LayoutInflater inflater = getLayoutInflater(); 
    View header = inflater.inflate(R.layout.list_header, (ViewGroup)  
    findViewById(R.id.header_layout_root)); 
    lv.addHeaderView(header, null, false); 

    //add some list items 
    String listItems[] = {"List Item One", "List Item Two", "List Item Three", "List 
          Item Four", "List Item Five"}; 
    lv.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, 
            listItems)); 
} 
0

에서 헤더를 구현하는 방법이다.

    String headerTitle = groupsVector.get(activeGroupIndex - 1).name + " " 
         + getString(R.string.view_group_members); 

       if (mGroupMembersList.getHeaderViewsCount() == 0) { 
        mGroupMembersHeaderView = getHeaderView(headerTitle); 
        mGroupMembersList.addHeaderView(mGroupMembersHeaderView); 
       } 

       if (mGroupMembersList != null) { 
        TextView titleTextView = (TextView) mGroupMembersHeaderView.findViewById(R.id.text); 
        titleTextView.setText(headerTitle);     
        mGroupMembersList.setAdapter(groupMembersAdapter); 
       } 

감사합니다, 의 Eyal - 여기 내 솔루션입니다.