Ich versuche, die Daten von API zu lesen, füllen Sie diese in DB und zeigen Sie es in der Listenansicht. Ich bekomme immer noch den Index aus, aber ich bin mir nicht sicher warum. Buch ist die einfache Buchklasse mit step phoneNo und string name. Ich kann die Daten abrufen. Ich bekomme die richtige Ausgabe, wenn ich die Daten, die ich abrufe, drucke, aber ich bekomme immer wieder Probleme, wenn ich versuche, die Daten in die Datenbank einzufügen und sie abzurufen.Index außerhalb der Grenzen in Android
List<Book> list = db.getAllBooks();
for(int i = 0; i<4; i++) {
thatName[i] = list.get(i).getName();
thatMobile[i] = list.get(i).getPhoneNo();
Log.d("List 1", thatName[i]);
Log.d("List 2", thatMobile[i]);
}
customListViewAdapter = new CustomListViewAdapter(getApplication(),thatName,thatMobile);
listView.setAdapter(customListViewAdapter);
};
}
DB
public List<Book> getAllBooks() {
List<Book> books = new LinkedList<Book>();
// 1. build the query
String query = "SELECT * FROM " + TABLE_BOOKS;
// 2. get reference to writable DB
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(query, null);
// 3. go over each row, build book and add it to list
Book book = null;
if (cursor.moveToFirst()) {
do {
book = new Book();
book.setPhoneNo(cursor.getString(1));
book.setName(cursor.getString(0));
//book.setAuthor(cursor.getString(2));
// Add book to books
books.add(book);
} while (cursor.moveToNext());
}
Log.d("getAllBooks()", books.toString());
// return books
return books;
}
Post logcat bitte – JpCrow
for (int i = 0; i < 4; i ++) Vielleicht haben Sie nicht 4 Bücher in der Datenbank? – Alex