0

私はこれに慣れていないので、初心者の間違いを犯した場合はご容赦ください。データベースを作成し、データベースからランダムなエントリを返そうとしています。プログラムは、ランダム化ボタンが押されたときにテキスト ビューを更新する Randomize アクティビティを起動する必要があります。\ public void randomize(View 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 アクティビティに挿入したコードです。何らかの理由で 1 回は機能しましたが、再度ランダム化を試みるたびにプログラムがクラッシュします。base は、すべてのレシピ エントリ名を含む、取得したリストです。私はそれを使用して ListView にデータを入力したので、もう一度使用してランダム化でアクセスできると考えました。

データベースから直接値を取得しようとする必要がありますか? もしそうなら、どうすればそれを行うことができますか?誰かが例を提供できますか?

4

2 に答える 2

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;
}

put your_limit_here = 50; よりもランダムに 50 個のデータを取得したいとします。your_limit は int です。

これを試してください:それはあなたを助けるかもしれません

于 2013-07-29T13:29:10.103 に答える
0

これを試して

db.query(tableName, null, null, null, null, null, "RANDOM()", "1");
于 2013-03-20T02:34:38.017 に答える