Java 删除后如何将Android中的数据库行ID重置回1

Java 删除后如何将Android中的数据库行ID重置回1,java,android,database,sqlite,android-listview,Java,Android,Database,Sqlite,Android Listview,我有一个与listview相关的数据库适配器,我有一个在中设置的单击侦听器。单击列表项时,该项在数据库删除后,listview重置回0,但数据库没有。。我需要知道,在我删除列表中的项目后,如何将行ID的数据库自动增量计数器重置为1。否则,listview和数据库将恢复同步。否则,DELETE方法将停止工作!这个问题快把我逼疯了!请帮忙 //This is my code in the database adapter public boolean deleteTask(long id){

我有一个与listview相关的数据库适配器,我有一个在中设置的单击侦听器。单击列表项时,该项在数据库删除后,listview重置回0,但数据库没有。。我需要知道,在我删除列表中的项目后,如何将行ID的数据库自动增量计数器重置为1。否则,listview和数据库将恢复同步。否则,DELETE方法将停止工作!这个问题快把我逼疯了!请帮忙

//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"));               
    }
});

SQLite自动递增ID的工作方式在删除行后将保持一致,例如,如果删除行ID 2,则行ID 1和3将保持相同的值,因此使ID再次连续的唯一方法是手动移动条目或复制行、删除表、创建新表并再次插入行


但是,如果您只是为了查看而使用本地存储,则始终可以使用limit子句获取数据库的选定部分以供查看。

谢谢,我非常感谢。你介意展示我如何在适配器中的方法中实现这一点的示例代码吗?因为我对android非常陌生。你需要将列表视图从与本地存储的关系更改为与项目列表的关系。您还需要一个计数器来记住您所在的行id。在on click函数中,您将调用一个函数来更新查询内容的项目列表,而不是调用一个删除的函数……它将如下所示:myList=checklistDb.selectDATABASE\u TABLE,Limit+yourCounter,null;以下是有关Select的sqlite文档,它向您介绍limit子句: