2016-10-04 4 views
0

Я создаю Listview, который заполнен из базы данных SQLite, и Long Click, в элементе ListView I предоставляет DialogBox с двумя кнопками Delete и cancel. При нажатии кнопки «Удалить» я хочу удалить этот элемент ListView из базы данных SQLite. Но я не добавлял первичный ключ в базу данных. Итак, как удалить его по позиции позиции.Как удалить элемент ListView из базы данных в LongClick?

+0

После удаления из базы данных перезагрузите ListView, вызовите функцию notifyDataChanged для перезагрузки списка, а для первичного ключа сначала получите элемент с выбранной позицией, а затем получите первичный ключ –

+0

Я также сделаю это, но его удалили из элемента списка, а не из базы данных –

+0

http://stackoverflow.com/questions/31771636/delete-item-from-both-database-and-listview-on-clicking-delete-button –

ответ

3
ArrayList<Object> items = query from sqlite; <--- notice 
then set items to listView adapter 
enter code here 

в onitem нажмите

@Override 
public void onItemClick(final AdapterView<?> parent, View arg1, final int **position**, long arg3) 
{ 

    .... 
    builder.setPositiveButton("OK", 
    new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 


     Integer deleteItem= 
      databaseHelper.delete_byID 
      (items.get(**position**).primaryKey); <----- change this 

         if(deleteItem>0) 

          Toast.makeText(getContext(), "Successfully Deleted", Toast.LENGTH_SHORT).show(); 
         else 
          Toast.makeText(getContext(), "Not", Toast.LENGTH_SHORT).show(); 



        } 
       }); 
     builder.show();][1] 

и перезагрузить Listview, чтобы удалить его из ListView тоже;

0

вы можете передать его в текстовом зрения с видимостью View.GONE

+0

в представлении «Список» добавьте еще один текстовый вид с видимостью и получите свой идентификатор в списке просмотра списка и передайте его в свой запрос –

Смежные вопросы