我在android SQLite中有一个表,我试图弄清楚如何重置KEY_ID
,我读到:DELETE FROM tablename
应该删除所有内容并将自动增量字段重置为0但是当我这样做时它只会删除数据。当插入新记录时,自动增量会从删除前停止的位置开始。我已经实现了一个longitemclicklistner
列表,它获得了位置,我想从列表中删除特定的项目。这是我的代码
public void deleteContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
getWritableDatabase().delete(TABLE_CONTACTS, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) } );
db.close();
}
这是代码onlongclicklistner
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int pos, long id) {
// TODO Auto-generated method stub
Log.v("long clicked","pos"+" "+pos);
final int p=pos+1;
final AlertDialog.Builder b = new AlertDialog.Builder(MainActivity.this);
b.setIcon(android.R.drawable.ic_dialog_alert);
b.setMessage("Are you sure you want to DELETE this Entry?");
b.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// continue with delete
db.getWritableDatabase();
db.deleteContact(db.getContact(p));
Intent i = new Intent(MainActivity.this,MainActivity.class);
startActivity(i);
}
});
b.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// do nothing
}
});
b.show();
}
问题是,id1
先创建然后再id2
创建,但是当我删除id2
并创建新联系人时,它会得到id3
. 我想让它得到id2