在我们开发应用的过程中,我们会将数据库和列表等数据存储容器进行相关联,通过这个,当我们想删除一些条目的时候,我们希望能够将我们在数据库中的数据也删除掉,然后将数据库中id按顺序再一次进行排列,但是sqlite并没有这么强大,所以说需要我们去解决这个问题。解决这个问题的方法就是通过一个ArrayList来实现,无大小限制,自己可以随意的向其中添加数据。通过代码实例来展示一下。
public void saveID (){
SQLiteDatabase msgDB = msgDBOpenHelper.getWritableDatabase();
cursor = msgDB.query("msg", null, null, null, null, null, null);
if(cursor != null && cursor.getCount()>0){
idList.removeAll(idList);
while(cursor.moveToNext())
idList.add(cursor.getString(0));
}
cursor.close();
msgDB.close();
}
通过这个方法,我们在每次执行数据库变化操作的时候调用这个方法,首先将原来列表中的数据清空,然后通过游标遍历的方式将数据添加到列表中,这样我们就可以保存下每一个id。执行删除操作的时候,我们需要将所删除位置在列表中对应数据也要删除掉。
当初始化列表或者是gridview的时候,我们要根据列表的位置找到列表中对应的id值,然后根据这个id值读出数据库中的值。