【问题标题】:How to remove ListView's Adapter如何删除 ListView 的适配器
【发布时间】:2013-05-26 02:37:01
【问题描述】:

在我的应用程序中,我使用的是 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.

如何解决?

【问题讨论】:

    标签: android header android-listview android-arrayadapter illegalstateexception


    【解决方案1】:

    由于您尚未提供完整代码,因此无法告诉您如何修复现有代码。 这是我在列表视图中实现标题的方式

      //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));
    }
    

    【讨论】:

      【解决方案2】:

      我找到了问题的答案。 这是我的解决方案-

                          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);
                      }
      

      谢谢, 艾尔。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多