当我尝试删除列表视图中的项目时,它不会更新列表视图。我已经在stackoverflow中关注并阅读了一些类似的问题,但我没有结果。你能帮我吗?
我有一个Activity Ver,我有一个onResume()方法:
public class Ver_DespesasActivity extends ActionBarActivity {
private ListView listView ;
private ArrayAdapter dataAdapter;
private DatabaseHelper databaseHelper ;
private List<Despesa> despesas;
ArrayList<Despesa>items;
MyAdapter adapter;
(...)
@Override
public void onResume() {
super.onResume();
databaseHelper= new DatabaseHelper(this.getApplicationContext());
Gasto gasto = databaseHelper.getGasto();
String mes = gasto.getMes();
int ano = gasto.getAno();
items.clear();
items.addAll(databaseHelper.getAllDespesas(mes, ano));
adapter.refresh(items);
}
然后我有一个MyAdapter类,我有refresh()方法:
public class MyAdapter extends BaseAdapter implements ListAdapter {
private ArrayList<Despesa> list = new ArrayList<Despesa>();
private Context context;
(...)
public void refresh(ArrayList<Despesa> list)
{
this.list = list;
this.notifyDataSetChanged();
}
MyAdapterConstructor:
public MyAdapter(ArrayList list, Context context) {
this.list = list;
this.context = context;
}
更新:我不知道这是否重要,我没有使用list.remove删除listview中的项目,我有一个方法可以执行此操作。
答案 0 :(得分:3)
由于适配器已在使用您的items
列表,因此您不需要刷新方法。您可以直接修改项目,直接notifyDataSetChanged
。
items.clear();
items.addAll(databaseHelper.getAllDespesas(mes, ano));
adapter.notifyDataSetChanged();