SQLite
 sql >> база данни >  >> RDS >> SQLite

Изтрийте заявка и опреснете в ListView в Android (sqlite)

Първо, не мога да изтрия транзакция (ред), извлечена от базата данни

Ред 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 всеки път, когато промените набора от данни.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. защо не успявам да създам тази таблица на android SQLite?

  2. SQLiteOpenHelper:методът onCreate() не е извикан на физическо устройство

  3. Избор на база данни за създаване на две свързани таблици?

  4. SQLite Intersect

  5. SQLite - Създайте таблица