如何遍历光标,每次迭代都是单击按钮?

时间:2013-08-23 04:23:19

标签: android sqlite loops

我正在开发各种各样的测验应用程序。在一个部分中,我从sqlite DB收到一个光标。 它包含问题的ID以及问题的顺序。 我想基于这些数据建立一个测验活动,一旦我弄清楚这个循环,就将问题ID与sql链接起来。

基本上我希望能够根据其光标位置及其订货号变量(1,2,3等)为第一个问题构建活动。每次他们回答问题并单击按钮时,它将迭代循环并转到下一个光标项和订单号(问题)。

我坚持如何做到这一点。

Cursor questionID_query = dbHelper.getQuestionIDListFromChapterID(chapter_id);

我知道我必须根据游标计数以某种方式循环。

for(int i=0; i < questionID_query.getCount(); i++){
    // loop through cursor
    //build question list
    //listen for button click
}

基本上任何关于如何实现这一点的提示都会非常好,我被烧毁了。

2 个答案:

答案 0 :(得分:0)

我认为最好的方法,就像魅力一样。

public ArrayList<HashMap<String, String>> readRowSQL(String rawSQL, String[] rawSQLSelectionArguments) {
        ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
        Cursor cursor = this.db.rawQuery(rawSQL, rawSQLSelectionArguments);
        this.colCount = cursor.getColumnCount();
        this.rowCount = cursor.getCount();
        if (cursor.moveToFirst()) {
            do {
                HashMap<String, String> col = new HashMap<String, String>();
                int size =cursor.getColumnCount();
                for (int i = 0; i < size; i++) {
                    col.put(cursor.getColumnName(i), cursor.getString(i));
                }
                list.add(col);
            } while (cursor.moveToNext());
        }
        if (cursor != null && !cursor.isClosed()) {
            cursor.close();
        }
        return list;
    }

答案 1 :(得分:0)

试试这个:

当您返回光标时,请先返回:

cursor.moveToFirst();

现在处于活动状态,当光标返回给你时,然后从光标中获取问题并设置为textviews和all。将此设置为textviews后,只需将光标移动到下一个问题,如:

cursor.moveToNext();

因此,当您单击下一个按钮时,只需从光标获取值,然后再次使其移动。这样每次点击按钮都可以得到下一个问题。

所以就像:

在onCreate()方法中获取Cursor

Cursor questionID_query = dbHelper.getQuestionIDListFromChapterID(chapter_id);
questionID_query.moveToFIrst();
txtQuestion.settext(questionID_query.getString(QuestionColumnNo));
questionID_query.moveToNext();

并在ButtonClick事件中:

txtQuestion.settext(questionID_query.getString(QuestionColumnNo));
questionID_query.moveToNext();

希望它能帮助!!