Първо, не мога да изтрия транзакция (ред), извлечена от базата данни
Ред 61 предава резултата от arg0.getItemAtPosition(arg2) към Cursor , но връщаният тип вероятно е HashMap (както пише в изхода на Logcat). Обикновено получавате Cursor от заявка за база данни.
Ако поставите идентификатора за всеки ред на базата данни в HashMap когато го изграждате, тогава ще можете да предадете този идентификатор на вашия deleteTransaction() извикване във вашия onClick събитие. Значи имате нужда от
temp.put("Id", localCursor.getInt(localCursor.getColumnIndex("_id")));
в getAllTransaction() , и след това преразгледайте своя onClick() метод да направите нещо подобно:
localDbCrud.open();
HashMap itemMap = (HashMap)localAdapter.getItem(arg2);
int item_id = Integer.parseInt((String)itemMap.get("Id"));
DbCrud.deleteTransaction(item_id);
localDbCrud.close();
Бих предложил също да преименувате arg2 (и други) да имат по-ясни имена, така че кодът да е по-лесен за следване.
Второ, трябва да знам как да обновя изгледа на списъка след изтриване на записа
Можете да извикате notifyDataSetChanged() на вашия адаптер, за да опресните ListView след като сте направили промяна в набора от данни.
РЕДАКТИРАНЕ:Моля, имайте предвид, че SimpleAdapter е предназначен за статични данни, така че вашият пробег може да варира. Най-доброто решение вероятно е да преминете към друг тип адаптер, като ArrayAdapter , или направете нов SimpleAdapter всеки път, когато промените набора от данни.