Du forsøger at hente et element på indeks 2, men dette indeks eksisterer virkelig ikke (markørstørrelsen er 2, så indekserne er 0,1).
Skift din loop:
if (result != null && result.moveToFirst()){
do {
Post post = new Post();
post.setPostId(result.getInt(0));
posts.add(post);
....
} while (result.moveToNext());
}
Nu skulle det fungere korrekt.
Bemærk: Glem ikke at kalde moveToFirst()
metode, der flytter markøren ind i den første post (er implicit placeret før den første række) og forbereder den til læsning. Dette er også en praktisk metode til at teste, om markøren er gyldig eller ej.
Bemærkning 2: Brug ikke kolonneindekser, du kan simpelthen lave en fejl i optællingen. I stedet for at bruge kolonnenavne - denne fremgangsmåde anbefales generelt f.eks. cursor.getColumnIndex("<columnName>")