Android 从列表视图和数据库中删除和刷新项目
删除记录后,我无法刷新列表视图Android 从列表视图和数据库中删除和刷新项目,android,Android,删除记录后,我无法刷新列表视图 String str3 = favtitle.get(position); //position = Integer.parseInt(cur.getString(cur.getColumnIndex("id"))); db.delete("Favorites7","title= '"+str3+"'",null); //mSchedule.notifyDataSe
String str3 = favtitle.get(position);
//position = Integer.parseInt(cur.getString(cur.getColumnIndex("id")));
db.delete("Favorites7","title= '"+str3+"'",null);
//mSchedule.notifyDataSetChanged();
cur.requery();
cur= db.query("Favorites7",
null, null, null, null, null, null);
cur.moveToFirst();
while (cur.isAfterLast() == false) {
//name.append("n" + cur.getString(1));
//mylist.addAll(cur.getString(i));
favtitle.add(cur.getString(1));
favloc.add(cur.getString(3));
favemp.add(cur.getString(2));
lat.add(cur.getString(7));
log.add(cur.getString(8));
//nextScreenData.add(cur.getString(2).toString());
cur.moveToNext();
}
cur.close();
mylist = new ArrayList<HashMap<String,Object>>();
HashMap<String,Object> map = new HashMap<String, Object>();
for(int i=0;i<favtitle.size();i++)
{
map = new HashMap<String, Object>();
map.put("train",favtitle.get(i));
map.put("value",favloc.get(i));
map.put("employer",favemp.get(i));
mylist.add(map);
}
mSchedule.notifyDataSetChanged();
mSchedule = new SimpleAdapter(Favorites.this, mylist, R.layout.listdelete,
new String[] {"train","value","employer"}, new int[] {R.id.dept,R.id.jobloc,R.id.employer});
lv.setAdapter(mSchedule);
lv.setDividerHeight(2);
lv.setCacheColorHint(Color.WHITE);
//cur.requery();
String str3=favtitle.get(位置);
//position=Integer.parseInt(cur.getString(cur.getColumnIndex(“id”)));
db.删除(“Favorites7”,“title=”+str3+“”,null);
//msSchedule.notifyDataSetChanged();
当前重新查询();
cur=db.query(“Favorites7”,
空,空,空,空,空,空,空);
cur.moveToFirst();
while(cur.isAfterLast()==false){
//name.append(“n”+cur.getString(1));
//mylist.addAll(cur.getString(i));
favtitle.add(cur.getString(1));
favloc.add(cur.getString(3));
favemp.add(cur.getString(2));
lat.add(cur.getString(7));
log.add(cur.getString(8));
//nextScreenData.add(cur.getString(2.toString());
cur.moveToNext();
}
cur.close();
mylist=新的ArrayList();
HashMap=newHashMap();
对于(int i=0;i您只需创建一个新适配器,然后将其分配给ListView。您可以调用您的适配器,当单击“删除”按钮时,它将反映对ui的更改。执行以下操作:
从数据库中删除相应的列表项
通过执行再次填充列表的查询,获取列表的新光标
使用将新光标绑定到列表
调用适配器
我可以删除项目,但它没有刷新…它正在重新生成列表。当我返回并再次返回时,它会显示包含已删除项目的列表。我正在这样做:嗯,通常您的代码应该可以工作,尽管您用数据填充列表的概念有点奇怪。为什么不使用SimpleCursors将光标直接绑定到列表适配器?