2015-12-09 66 views
0

我有一個自定義列表視圖與數據庫中的數據。 在我的名單適配器我設置onlongclicklistener在我的數據庫中刪除一個項目:android刪除數據庫中的項目,但不是表格列表視圖

row.setOnLongClickListener(new View.OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View v) { 

      AlertDialog alertDialog = new AlertDialog.Builder(context).create(); 
      alertDialog.setTitle(context.getResources().getString("TITEL")); 

      alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "NO", 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 
          dialog.dismiss(); 
         } 
        }); 
      alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "YES", 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int which) { 

          String delete = "DELETE FROM "+DatabaseHelper.DATABASE_TABLE+" " + 
            "WHERE "+DatabaseHelper.COLUMN_ID+" = "+databaseListItems.getID(); 

          sqlHandler = new DatabaseHandler(context); 
          sqlHandler.executeQuery(delete); 

          dialog.dismiss(); 
         } 
        }); 

      alertDialog.show(); 
      return false; 
     } 
    }); 

項目將在數據庫中刪除,但不是在列表視圖中。如果我重新加載列表視圖,該項目將消失 如何在刪除後重新加載列表視圖?

+0

notifyDataSetChanged(); –

+2

我不清楚你想要什麼。你想從數據庫和ListView中刪除項目,或者只是想在數據庫中而不是在ListView中? – ResolutioN

+0

在Dialog返回後,只需調用Adapter的'notifyDatasetChanged()'。 –

回答

0

執行數據庫查詢後裝,從arraylis刪除項目t內使用的是通過使用此

myList.delete(position); 

來填充ListView和調用

notifyDatasetChanged(); 

爲獲得該項目的位置,你可以在列表視圖設置setOnItemLongClickListener。

0

您應該遵循兩個步驟:

1)當你確認刪除,你必須從你的適配器使用填充列表

2)然後將對象中刪除的項目,你已調用notifyDatasetChanged()

如果不刪除該適配器的項目,它會再次在列表中調用notifyDatasetChanged()

相關問題