从列表生成的参数randon

时间:2017-11-20 13:56:15

标签: java android sqlite android-sqlite

我想植入一个方法,通过SQLite返回DataBase中的项目列表 表很简单(ID,intitule“text”,comment)。

我写了一个方法来选择我的问题并将它们放在列表视图中:

public ArrayList getList(){
    ArrayList lst = new ArrayList();
    Random ran = new Random();
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor c = db.rawQuery(" SELECT " +KEY_INTITULE+ " from " +TABLE_QUESTION,null);
    if (c.moveToFirst()) {
        while(c.isAfterLast()==false){
            String t1 = c.getString(c.getColumnIndex(KEY_INTITULE));
            lst.add(t1);
            c.moveToNext();
        }
    }
    return lst;
}

我想让用户可以选择用户想要显示的INTITULE数量,获取此数量的随机项目。
如果他/她选择3,则她会随机选择3个项目。

我也尝试这样做,但它不起作用

int size = lst.size();
        int tmp=-1;
        int rnd;
       String randomID = new String();
        ArrayList  <String> listrand = new ArrayList<String>();
        for (int j=0;j<param;j++){
            rnd = rand.nextInt(size)-1;
            if(rnd!=tmp){
                randomID =lst.add(rand);
                listrand.add(randomID);
               // tmp!=rnd;

            }
        }
        return listrand;
    }

1 个答案:

答案 0 :(得分:0)

终于工作了,我只能在sql中使用Order by

int param;

Cursor c = db.rawQuery(" SELECT " +KEY_QUESTION+ " from " +TABLE_QUESTION+ " ORDER BY RANDOM() LIMIT " +param+ ,null);