ListView子项在数据库中的id
Listview这东西呢,嗯,很常用,表示还是被坑了很久来着。
比如说,我所做的是,把内容添入数据库sqlite,然后呢,把表中的数据放到一个ArrayList里,再将ArrayList中的数据作为数据源与listview适配,绑定成功,可以正常添加和显示了。
可是!当要做删除时,就彻底被网上流传最广的那个listview删除代码坑了。如下:
filelist.remove(position); listAdapter.notifyDataSetChanged();
没错就是这样,无数博客论坛都是这样,于是我傻傻以为只要删除那个位置就可以了,是其他地方代码不对,好吧确实也有不对。直到后来,这样的删除表现的结果变成开始删除成功,一刷又出来了,我才终于动脑子想到,数据库没删,再重新获取当然又出来了啊!
删除操作是需要id的,于是我开始寻找如何得到id而不是位置,可是无数博客论坛所说的的都是位置。。
HashMap<String, Object> map = MainActivity.listData.get(position); //listData是存放数据的ArrayList int id = Integer.valueOf((map.get("id").toString())); dbHelper.delete(MainActivity.db, "notes", id); MainActivity.listData.remove(position); MainActivity.listItemAdapter.notifyDataSetChanged();
好吧反正最后我是这样删的
难道把listview里的东西存到数据库里,然后在点击listview子项之后的内容页设置了一个删除选项,这是很奇怪的想法所以没人用吗。。还是我想多了?求指教