Za prvé, nejsem schopen smazat transakci (řádek) načtenou z databáze
Řádek 61 přenáší výsledek arg0.getItemAtPosition(arg2) na Cursor , ale návratový typ je pravděpodobně HashMap (jak je uvedeno ve výstupu Logcat). Normálně získáte Cursor z databázového dotazu.
Pokud vložíte ID pro každý řádek databáze do HashMap až jej budete vytvářet, budete moci toto ID předat do deleteTransaction() zavolejte do svého onClick událost. Takže potřebujete
temp.put("Id", localCursor.getInt(localCursor.getColumnIndex("_id")));
v getAllTransaction() a poté revidujte onClick() způsob, jak udělat něco takového:
localDbCrud.open();
HashMap itemMap = (HashMap)localAdapter.getItem(arg2);
int item_id = Integer.parseInt((String)itemMap.get("Id"));
DbCrud.deleteTransaction(item_id);
localDbCrud.close();
Také bych navrhoval přejmenovat arg2 (a další), aby měli jasnější názvy, aby bylo snazší sledovat kód.
Za druhé, potřebuji vědět, jak obnovit zobrazení seznamu po smazání záznamu
Můžete zavolat notifyDataSetChanged() na vašem adaptéru a obnovte ListView poté, co provedete změnu v datové sadě.
EDIT:Vezměte prosím na vědomí, že SimpleAdapter je určen pro statická data, takže se vaše kilometry mohou lišit. Nejlepším řešením je pravděpodobně přejít na jiný typ adaptéru, například ArrayAdapter nebo vytvořte nový SimpleAdapter pokaždé, když změníte datovou sadu.