刷新listview onpost执行asynctask

时间:2013-08-28 10:21:24

标签: android listview android-asynctask adapter custom-lists

我知道这个问题已被多次发布,我浏览了几乎所有这些但是没有结果,我正在执行从mysql数据库中删除一个项目,但它不令人耳目一新,这里是onclicklistener的代码和按钮:

onClick listener:

 holder.void_button.setOnClickListener(new OnClickListener(){

    public void onClick(View v) {
    adapter = new CustomListViewVoidAdapter(context,R.layout.mytemp, items);
    item_selected= items.get(position);
        new DeleteOrder().execute();
               }});
            vi.setTag(holder);
        }

来自AsyncTask的OnPostExecute:

 protected void onPostExecute(String unused){
            adapter.remove(item_selected);
            adapter.notifyDataSetChanged();
        }

适配器全局实例化,请您检查问题所在? 它不会返回任何错误,只是删除该项而不是刷新。

此致

拉​​尔夫

3 个答案:

答案 0 :(得分:1)

把它扔出去,但是,你试过过adapter.notifyDataSetInvalidated();?这迫使更新。

另外,将代码放入asynctask!

像这样:

protected void onPostExecute() {

   adapter.notifyDataSetChanged();
   adapter.notifyDataSetInvalidated();


}

答案 1 :(得分:0)

您最好使用新值将适配器再次设置为onPostExecute中的列表视图。在这种情况下,您无需致电notifyDataSetChanged。也不要在onClick中重新初始化适配器,这不是必需的。

答案 2 :(得分:0)

在postExecute中添加以下行。

if(adapter != null) { 
    adapter = new CustomListViewVoidAdapter(context,R.layout.mytemp, items);
    YourListviewObject.setAdapter(adapter); 
}