Android列表视图更新所有项目

时间:2012-02-21 07:49:07

标签: android listview selection

我有一个列表视图,其中包含大量项目。 现在我有一个共同的按钮“全选”,点击该按钮应该对列表中的每个项目进行一些操作。

我看到了覆盖onscrollchanged的答案。但我不希望用户做滚动。没有它本身应该选择所有项目。

目前我正在使用listview.getcount进行迭代,但此更新仅适用于当前视图组。

4 个答案:

答案 0 :(得分:4)

我认为您拥有自定义BaseAdapter并且已覆盖的getView(..)方法会根据其状态(已选中/未选中)刷新每个视图。如果是这样,那么你只需要对这个ListAdapter的基础数据进行更改(假设,迭代存储由此列表表示的对象并更改每个对象的某些属性的数组),然后调用{ {3}}方法。

答案 1 :(得分:2)

什么对我有用:

private void enableAllListItems() {
        for(int i=0;i<mCursorAdapter.getCount();i++)
            mCheckedPositions.set(i, true);
        mListView.invalidateViews();
    }

导入部分是“invalidateViews()”,因为你必须说ListView它的底层数据发生了变化!

但我实际上是在使用自己的适配器,所以我覆盖了getView() - Method。我不确定它是否适用于标准适配器。

答案 2 :(得分:1)

您使用用于填充列表的通用列表对其进行迭代。那会对你有所帮助。

答案 3 :(得分:0)

试试这个。

   private void SelectAll() {
    // TODO Auto-generated method stub

    int count = this.mainListView.getAdapter().getCount();

    for (int i = 0; i < count; i++) {

        this.mainListView.setItemChecked(i, true);

    }

}