2016-01-21 95 views
1

我有一个ListView作为我的ListView的HeaderView。当任何元素添加到标题的ListView中时,我想更新ListView的HeaderView。我们应该怎么做? 因为我正在更新标头和notifyingDataSetChange中的ListView适配器以及视图无效。它仍然没有更新。这里是我的一段代码:Android ListViews:更新ListView的headerView

drawerList = (ListView) findViewById(R.id.drawerList); 
    View HeaderView = getLayoutInflater() 
      .inflate(R.layout.favourites, null); 
    favouritesList = (ListView) HeaderView 
      .findViewById(R.id.FavouritesList); 
    favList = new ArrayList(); 
    favList.add(""); 
    FavAdapter = new ListViewAdapter(this,favList); 
    favouritesList.setAdapter(FavAdapter); 

    drawerList.addHeaderView(HeaderView); // Setting as header to ListView 

在功能

FavAdapter.AddItem(associatedItem); 
FavAdapter.notifyDataSetChanged(); 
favouritesList.invalidateViews(); 
drawerList.invalidateViews(); 

回答

0

你不应该真正把ListView作为另一ListView的头。让你的Adapter返回两种不同类型的视图。

为此,您需要在您的适配器中使用getItemViewType()getViewTypeCount()方法进行操作。然后在适配器的getView()内部识别哪种类型与给定的position相关联,并相应地创建View