Du försöker hämta ett objekt på index 2 men det här indexet existerar verkligen inte (markörstorleken är 2 så index är 0,1).
Ändra din loop:
if (result != null && result.moveToFirst()){
do {
Post post = new Post();
post.setPostId(result.getInt(0));
posts.add(post);
....
} while (result.moveToNext());
}
Nu borde det fungera korrekt.
Obs! Glöm inte att anropa moveToFirst()
metod som flyttar markören till den första posten (placeras implicit före den första raden) och förbereder den för läsning. Detta är också en praktisk metod för att testa om markören är giltig eller inte.
Obs 2: Använd inte kolumnindex, du kan helt enkelt göra ett misstag när du räknar. Istället för att använda kolumnnamn - detta tillvägagångssätt rekommenderas generellt t.ex. cursor.getColumnIndex("<columnName>")