Я пытаюсь сделать опрос с несколькими ответами. Я последовал за этот сайт: Simple Quiz GameПолучение вопросов от SQLite Android
В Multiple активность, добавить следующее:
QuestionsDbHelper db = new QuestionsDbHelper(this);
questionsList = db.getAllQuestions();
currentQuestion=questionsList.get(questionId);
Как вы можете видеть на последней строке я получаю эту ошибку. В QuestionDbHelper я добавил вопросы, но не могу их отобразить в Activity. Я описал действие в файле манифеста. Что я могу понять из Debug, так это то, что мой массив пуст, но я вставил список вопросов.
Любая идея?
Caused by: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
at java.util.ArrayList.get(ArrayList.java:304)
at com.game.mlm.q2game.MultipleMode.onCreate(MultipleMode.java:36)
Я отправляю свой код без onCreate и onUpgrade, потому что они довольно простые. Вот мой код QuestionsDbhelper:
public void addQuestions(Questions question){
Log.d("add Questions" , question.toString());
// SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_QUESTION, question.getQuestion());
values.put(KEY_ANSWER, question.getAnswer());
values.put(KEY_FBUTTON, question.getFirstButton());
values.put(KEY_SBUTTON, question.getSecondButton());
values.put(KEY_THBUTTON, question.getThirdButton());
dbase.insert(TABLE_QUESTIONS, null, values);
}
public List<Questions> getAllQuestions(){
List<Questions> questionsList = new ArrayList<Questions>();
//SELECT ALL FROM QUERY
String selectQuery = "SELECT * FROM " + TABLE_QUESTIONS;
dbase= this.getReadableDatabase();
Cursor cursor = dbase.rawQuery(selectQuery, null);
//LOOPING THROUGH ALL ROWS AND ADDING TO LIST
if (cursor.moveToFirst()) {
do {
Questions question = new Questions();
question.setId(cursor.getInt(0));
question.setQuestion(cursor.getString(1));
question.setAnswer(cursor.getString(2));
question.setFirstButton(cursor.getString(3));
question.setSecondButton(cursor.getString(4));
question.setThirdButton(cursor.getString(5));
questionsList.add(question);
}
while (cursor.moveToNext());
}
Log.d("getAllQuestions()", questionsList.toString());
return questionsList;
}
public int rowcount() {
int row = 0;
String selectQuery = "SELECT * FROM " + TABLE_QUESTIONS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
row = cursor.getCount();
// cursor.close();
return row;
}
'Любая идея?' ArrayList пуст (возможно, запрос вернул пустой набор результатов). –
Вы можете включить код для 'QuestionsDbHelper' – EpicPandaForce
Распечатайте запрос в Logcat и запустите его в браузере SQLite. Возможно, ваш запрос неверен. –