Android ListViews:更新ListView的headerView

时间:2016-01-21 19:46:32

标签: android listview

我有一个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();

1 个答案:

答案 0 :(得分:0)

您不应该将ListView作为另一个ListView的标头。让Adapter返回两种不同类型的视图。

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