2013-03-20 104 views
0

我是新来的,所以如果我做任何noob错误,请耐心等待。我试图编写一个数据库并从数据库中返回一个随机条目。程序应该启动随机化活动,当随机化按钮被按下时,该活动将更新文本视图。 \ 公共无效随机化(视图v){ view.setText(randRecipe());}Android-从SQLite数据库检索随机条目?

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

这是我把我的随机化活动的代码,尽管它由于某种原因,工作的一次,我每次我尝试再次随机化时,程序崩溃。 base是我检索到的包含所有配方条目名称的List。我想,因为我用它来填充我的ListView,我可以再次使用它来随机访问它。

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

+1

我会直接从数据库中获取它。为此,请将[ORDER BY random()limit 1](http://stackoverflow.com/questions/1253561/sqlite-order-by-rand)附加到SQL查询的末尾。 – hd1 2013-03-20 02:25:15

回答

0

试试这个

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

公共光标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。

试试这个:可能会帮助你