Я изучаю, как работать с базой данных sqlite, и я попытался реализовать рекордную систему в игре, которую я сделал. чтение строк работает, когда я пытаюсь показать оценки, но когда я пытаюсь использовать ту же идею, чтобы читать значения, чтобы сравнить их в следующем методе - он дает ошибку исключения нулевого указателя.Strange nullPointerException error - связанная с базой данных
private void checkIfHighScore(int currentScore) {
Cursor note;
int rowScore;
String moveName, moveScore, newName;
for (long i=1;i<6;i++){
note = mDbHelper.fetchNote(i);
startManagingCursor(note);
rowScore=Integer.parseInt(note.getString(note.getColumnIndexOrThrow(ScoresDbAdapter.KEY_BODY)));
if (currentScore<rowScore){
for (long j=5;j>i;j--){
note = mDbHelper.fetchNote(j-1);
startManagingCursor(note);
moveName=note.getString(note.getColumnIndexOrThrow(ScoresDbAdapter.KEY_TITLE));
moveScore=note.getString(note.getColumnIndexOrThrow(ScoresDbAdapter.KEY_BODY));
mDbHelper.updateNote(j, moveName, moveScore);
}
newName="a"; //for testing
mDbHelper.updateNote(i, newName, Integer.toString(currentScore));
break;
}
}
}
Я знаю, что ошибка находится на линии после цикла for, но я не знаю, что приводит к ее провалу. моя база данных содержит 5 строк данных (проверено). Кто-нибудь знает, что вызывает мою ошибку? стучал головой о стену в течение 2 часов. благодаря!
Как объявляется и инициализируется 'mDbHelper'? –
Может быть: 'mDbHelper' не инициализирован, или' mDbHelper.fetchNote (i) 'возвращает null (у нас нет кода для этого), пожалуйста, добавьте log cat и еще код, чтобы мы могли помочь –
mDbHelper = new ScoresDbAdapter (это); mDbHelper.open(); также помните, что я использую ту же команду (fetchNote) для чтения из базы данных по другому методу, поэтому она работает хорошо, в большинстве случаев. – Zephyer