2013-03-20 4 views
0

나는 이것에 초보자 다. 그래서 나는 어떤 멍청한 실수라도하면 나와 맺어 라. 데이터베이스를 작성하고 데이터베이스에서 임의의 항목을 리턴하려고합니다. 프로그램은 무작위 화 버튼을 누를 때 텍스트보기를 업데이트하는 무작위 화 활동을 시작해야합니다. \ 공공 무효의 RANDOMIZE (보기 V) { view.setText (randRecipe());}Android - SQLite Database에서 무작위로 항목 가져 오기?

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

이것은 내 임의 화 활동에 넣어 코드이며 어떤 이유로 한 번 일을하지만, 내 프로그램을 다시 무작위로 시도 할 때마다 충돌이 발생합니다. base는 내가 검색 한 List이며 모든 recipe entry 이름을 포함합니다. ListView를 채우기 위해 사용한 이후로 무작위로 다시 액세스 할 수있었습니다.

데이터베이스에서 직접 값을 가져 오려고합니까? 그렇다면 어떻게해야하고 누군가가 모범을 보여 줄 수 있습니까?

+1

나는 데이터베이스에서 직접 가져올 수 있습니다. 이렇게하려면 [ORDER BY random() limit 1] (http://stackoverflow.com/questions/1253561/sqlite-order-by-rand)을 SQL 쿼리 끝에 추가하십시오. – hd1

답변

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입니다.

이것을 시도하십시오 :

관련 문제