Uzavřete cursor pokaždé po použití bude váš problém vyřešen
itemsCursor.close()
Protože toto neuzavíráte, prostředky kurzoru se neuvolní z toho důvodu, když zavřete db, zobrazí se tato chyba.
Nastavte kurzor jako globální proměnnou a poté na onDestroy
@Override
protected void onDestroy() {
super.onDestroy();
itemsCursor.close();
db.close();
}
A protože nyní přidáváte close příkaz jako poslední příkaz filldata Adapter z listview nezíská žádná data jako cursor je již uvolněn, proto v listview nezískáváte žádná data .