【问题标题】:Clear all items in a ListFragment清除 ListFragment 中的所有项目
【发布时间】:2014-03-17 00:43:13
【问题描述】:

我正在使用 ListFragment 并显示来自数据库的动态列表,我想通过再次运行 ASYNCTASK 来更新视图并更改列表的顺序。在他们完成此操作的那一刻,新数据将被放在当前列表的底部。

片段中的异步任务:

创建列表适配器并显示它

        protected void onPostExecute(String file_url) {
        // // dismiss the dialog once done
        pDialog.dismiss();

        fragment_module.this.getListView().invalidateViews(); //does nothing
         adapter = new SimpleAdapter(getActivity(),
                questionsList, R.layout.questionlistitem, new String[] {
                        TAG_QUESTIONVOTE, TAG_QUESTIONTEXT,
                        TAG_QUESTIONANSWER, CONCATINATED_SUBMISSION,
                        TAG_QUESTIONID }, new int[] { R.id.upvoteText,
                        R.id.questionText, R.id.questionAnswer,
                        R.id.submission, R.id.qid });
        // updating listview

        setListAdapter(adapter);

    }

在 onclick 事件后视图会发生变化,只是希望列表被清除以便更新。

更新 调用代码以更新视图并重新运行 asynctask

                      fragment_module.this.getListView().invalidateViews();
                  getQuestionList obj2 = new getQuestionList();
                    obj2.execute();

【问题讨论】:

    标签: android android-listfragment


    【解决方案1】:

    你可以使用类似的东西

    collection.clear();
    listview.getAdapter().notifyDataSetChanged();
    

    【讨论】:

    • 让我直截了当,因为我有点困惑......你用数据库中的值创建了一个列表视图......然后你想用数据库中的新值更新列表视图项目,但是你不想将它们全部附加到列表视图的末尾,而是按您想要的位置? :)
    • 哦,不,我想用数据库中的新值完全重新加载列表。我目前拥有的代码只是将值添加到当前列表中。我现在正在尝试一个空适配器,看看它是否有效
    • 在这种情况下 jusr 使用 ArrayAdapter ... 并且该集合是一个 ArrayList ,其中包含您希望在创建 ArrayAdaper 时作为构造函数中的最后一个参数传递的值
    • 花了一些时间才恢复,但现在已修复,感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 2015-09-16
    • 2019-06-19
    相关资源
    最近更新 更多