如何在Android中重置数据库行ID在删除后返回1

时间:2012-02-19 23:01:32

标签: java android database sqlite android-listview

我有一个与listview有关系的数据库适配器,我有一个on click监听器设置在单击列表项时数据库后删除项目,listivew重置为0,但数据库没有..我需要知道AI删除和项目在我的列表中如何在世界上我可以重置数据库自动递增计数器为行ID返回1 ..否则列表视图和数据库返回同步..另外删除方法停止工作!这就是让我疯狂的问题!请帮助!

//This is my code in the database adapter
public boolean deleteTask(long id){
     return checklistDB.delete(DATABASE_TABLE, KEY_ROWID+ "=" + id, null) > 0;
}


//This is me calling the method in my activity
listview2.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
        // TODO Auto-generated method stub
        checklistDB.open();
        //I add a counter to the position so that it equals the database row which starts at 1
        arg2++;
        checklistDB.deleteTask(arg2);
        startActivity(new Intent("com.aondo.checklist.buslist"));               
    }
});

1 个答案:

答案 0 :(得分:0)

SQLite工作自动增量ID的方式在删除行后将保持一致(例如,如果删除行ID 2,行ID 1和3将保持相同的值),那么再次使ID顺序的唯一方法是手动移动条目或复制行,删除表,创建新表并再次插入行。

但是,如果您仅为视图使用本地存储,则可以始终使用limit子句来获取数据库的选择部分以供查看。