我知道这个问题已被多次发布,我浏览了几乎所有这些但是没有结果,我正在执行从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();
}
适配器全局实例化,请您检查问题所在? 它不会返回任何错误,只是删除该项而不是刷新。
此致
拉尔夫
答案 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);
}