0

私のアプリケーションでは、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.

どのように修正できますか?

4

2 に答える 2

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));
}
于 2013-05-30T13:58:03.450 に答える