2012-06-19 2 views
1

Я пишу простую программу для викторины с несколькими вариантами. Таблица базы данных SQLite выглядит так:Android Quiz App с базами данных SQLite случайный выбор

1 Question1 RightAnswer1 
2 Question2 RightAnswer2 
3 Question3 RightAnswer3 
and so on. 

Макет деятельности выглядит следующим образом.

Question TextView 
Wrong Answer ListViewItem 
Right Answer ListViewItem 
Wrong Answer ListViewItem 
Wrong Answer ListViewItem 

Я собираюсь выбрать Java random для выбора случайного вопроса из таблицы. Мой вопрос: как я должен выбирать неправильные ответы из одной таблицы, чтобы они не совпадали с правильным ответом. И еще один вопрос: как правильно разместить правильный ответ в одном из четырех текстовых элементов? Должен ли я использовать Java Collections.shuffle для перетасовки этих четырех позиций?

+0

Ответ на такой же вопрос уже был дан на SO. Я не могу найти его, чтобы предоставить вам ссылку. –

ответ

0

Я не очень хорошо пишу английский, но взгляните на мое решение.

Создайте один список вопросов класса вопросов. В этом классе содержится:
1 - Одна строка поля для вопроса.
2 - Одна строка поля для ответа.
3 - Одно поле булево для неправильного или правого.

Я надеюсь, что это поможет.

Удачи вам!

0

Вы можете создать класс для ваших данных sqlite.

public class name{ 
    private String question; 
    private String answer; 
    public name(String q,String a){ 
      question=q; 
      question=a; 
     } 
    public String getQuestion{return question;} 
    public String getAnswer {return answer;} 
} 

И после определения этого класса вы можете положить ваши ДАННЫЕ внутри ArrayList после извлечения из БД SQLite.

ArrayList<your class name> list=new ArrayList<your class name>(); 
Cursor c=db.query(tablename,new String[]{your columns},null,null,null,null,null); 
if(c.moveToFirst(){ 
    do{ 
     String question=c.getString(columnName); 
     String answer=c.getString(ColumnBame); 
     className cls=new className(question,answer); 
     list.add(cls); 
     }while(c.MoveToNext()); 
+0

Я использовал Java Random для генерации случайного числа и использовал это число, чтобы получить вопрос из базы данных с помощью курсора, но тот же самый вопрос повторяется очень часто. Как я могу выбрать вопрос из массива и убедиться, что он уникален? И как я могу выбрать неправильные ответы из того же массива и убедиться, что они не включают правильный ответ? – SeanZhang2012

+0

Хорошо, я понял. Я могу перетасовать массив. – SeanZhang2012

Смежные вопросы