将数据调整为ListView

时间:2013-05-04 05:07:59

标签: android android-listview

在我的一项活动中,我有EditText,提交ButtonListViewListView的数据从数据库中恢复。要从数据库中检索数据并适应ListView,我使用了以下代码。

private void loadList() {
    mylist = new ArrayList<HashMap<String, Object>>();
    mylist.clear();
    List<Data> catDesc = dbhelper.getCatMasterDesc(id);
    ArrayAdapter<Data> adapter = new SimpleAdapter(getApplicationContext(), R.layout.list, catDesc);
    lv1 = (ListView) findViewById(R.id.masListView1);
    lv1.setAdapter(adapter);
}

每当我更新数据库以显示更新的列表视图时,我都会调用此方法。

String str = category.getText().toString();
yes.setOnClickListener(new OnClickListener() {
    public void onClick(View arg0) {
    dbhelper.UpdateMasterDesc(str);
    loadList(); // see here.
}
});

这是我更新ListView的方式。我认为这不是一个好方法。如果是,则建议我如何在更新数据库时更新ListView

谢谢。

1 个答案:

答案 0 :(得分:0)

notifyDataSetchanged()是Raghunandan提出的答案。

但在调用它之前,您需要更新已包含在catDesc列表中的对象数据。

从您的代码判断,我相信

dbhelper.UpdateMasterDesc(str);

是否正在添加新类别?如果是,请执行

catDesc.add(new Data(whatever you need to declare it with str))

在调用notifyDataSetChanged()之前。