Android 从数据库生成除ID字段外的随机字

Android 从数据库生成除ID字段外的随机字,android,sqlite,random,Android,Sqlite,Random,我制作了一个从数据库生成随机单词的应用程序。但是有这样一个问题: 我在数据库中插入了一些行,ID字段是AUTOINCREMENT。我从数据库中随机得到一个单词。但是,如您所知,当我删除一条记录并插入新记录时,ID将跳过旧记录。 因此,当我尝试获取一个随机单词时,可能会发生错误。我如何解决这个问题? 谢谢你的回复 public void kelimeUret() { SQLiteDatabase db = kelimeler.getReadableDatabase(); ras


我制作了一个从数据库生成随机单词的应用程序。但是有这样一个问题:
我在数据库中插入了一些行,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时,它会给出一个错误。我想我应该为记录生成一个有序的数字,但我找不到方法。我想用另一种方式做。(不在ID上)

如果可以的话,您最简单的赌注可能是放弃自动递增,而是自己处理提供ID的问题。
只需查询最高的当前ID,并自行递增即可

请发布您的代码和错误消息请编辑您的问题。代码对我们来说可读性更好。我应该将ID字段更改为普通整数,当我向数据库插入行时,我应该获得最后一个ID,并为新行增加它。是吗?是的,这就是我描述的:派斯。。但我又犯了一个错误!:(例如,数据库中有3行。我删除了第二行。然后,当我想添加新的时,我将如何填写第二个ID?halilkaya,我认为当你考虑这个问题时,你会找到与任何人都能给出的答案相同的答案,但你正在寻找某种神奇的方法:没有一行。你只需手动处理这个问题。你可以你可以通过每次重新排序你的ID或者在你的随机选择器中建立一个小的重试逻辑来做到这一点,如果他点击一个空值,那么继续尝试直到他发现一些东西。也许最新的将是最简单的。