Android-从SQLite数据库中检索随机条目?

时间:2013-03-20 02:19:59

标签: android random android-sqlite

我是新手,所以如果我犯了任何noob错误,请耐心等待。我正在尝试编写数据库并从数据库中返回一个随机条目。该程序应启动Randomize活动,该活动将在按下randomize按钮时更新文本视图。 \     public void randomize(查看v)     {         view.setText(randRecipe());}

public String randRecipe()
  {
      Random rand= new Random();
      int r= rand.nextInt(base.size());
      Recipe rec= base.get(r);
      return rec.toString();
  }

这是我在Randomize活动中输入的代码,虽然由于某种原因它只运行一次,但每次尝试再次随机化时我的程序都会崩溃。 base是我检索到的包含所有配方条目名称的List。我想,因为我用它来填充我的ListView,我可以再次使用它来随机访问它。

我应该尝试直接从数据库中获取值吗?如果是这样,我该怎么做呢,有人可以提供一个例子吗?

2 个答案:

答案 0 :(得分:1)

public Cursor getRandom() {

Cursor cursor = myDataBase.rawQuery(
        "SELECT * FROM your_table_name ORDER BY RANDOM() LIMIT your_limit_here", null);
if (cursor.moveToFirst()) {
    return cursor;
}
return cursor;
}

假设您想要随机获得50个数据,而不是将your_limit_here = 50;其中your_limit是一个int。

试试这个:可能会帮到你

答案 1 :(得分:0)

试试这个

db.query(tableName, null, null, null, null, null, "RANDOM()", "1");