Android:无法刷新我的列表视图

时间:2015-02-25 20:17:52

标签: android

当我尝试删除列表视图中的项目时,它不会更新列表视图。我已经在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中的项目,我有一个方法可以执行此操作。

1 个答案:

答案 0 :(得分:3)

由于适配器已在使用您的items列表,因此您不需要刷新方法。您可以直接修改项目,直接notifyDataSetChanged

items.clear();
items.addAll(databaseHelper.getAllDespesas(mes, ano));
adapter.notifyDataSetChanged();