我制作了一个从数据库生成随机单词的应用程序。但是有这样一个问题:
我在数据库中插入了一些行,而 ID 字段是 AUTOINCREMENT。我从数据库中得到一个随机词。但是,当我删除一条记录并插入新记录时,如您所知,ID 正在跳过旧记录。
因此,当我尝试获取随机单词时,可能会发生错误。我怎么解决这个问题?
谢谢你的回复...
public void kelimeUret() {
SQLiteDatabase db = kelimeler.getReadableDatabase();
rastgele = new Random();
Cursor kayit = db.rawQuery("SELECT count(*) FROM kelimeler", null);
kayit.moveToFirst();
int max = Integer.parseInt(kayit.getString(0));
int min = 1;
int rastgeleKayit = rastgele.nextInt(max - min + 1) + min;
Cursor kayit2 = db.rawQuery("SELECT ingilizce FROM kelimeler WHERE id=" + rastgeleKayit, null);
kayit2.moveToFirst();
String sonuc = kayit2.getString(0);
olusturulanKelime = sonuc;
kelime = (TextView) findViewById(R.id.kelime);
kelime.setText(sonuc);
}
我的代码在这里。其实没有问题。有用。但是当 random 生成一个之前已从数据库中删除的 ID 时,它会出错。我认为我应该为记录生成一个有序的数字,但我找不到这样做的方法。我想用另一种方式来做。(不在身份证上)