我有一个ListView作为ListView的HeaderView。我想在标题的ListView中添加任何元素时更新我的ListView的HeaderView。我们应该怎么做? 因为我正在更新标头和notifyingDataSetChange中的ListView适配器以及使视图无效。仍然没有更新。这是我的代码:
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 :(得分:0)
您不应该将ListView
作为另一个ListView
的标头。让Adapter
返回两种不同类型的视图。
为此,您需要使用适配器中的getItemViewType()
和getViewTypeCount()
方法进行操作。然后在适配器getView()
内部,只需识别与给定position
关联的类型,然后相应地创建View
。