2013-03-20 98 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。

試試這個:可能會幫助你