2012-06-02 151 views
0

時當我打電話給我的FUNC鍵從我的數據庫中刪除行:錯誤刪除SQlite的行

public void deleteRow(int rowId) { 
    getWritableDatabase().delete(DatabaseHelper.orderTable, "id="+rowId,null); 

我得到了很多的錯誤消息在logcat中:

06-02 16:32:14.356: E/WindowManager(2770): Activity com.Sagi.MyOrders.FindOrder has leaked window [email protected] that was originally added here 
06-02 16:32:14.356: E/WindowManager(2770): android.view.WindowLeaked: Activity com.Sagi.MyOrders.FindOrder has leaked window [email protected] that was originally added here 
06-02 16:32:14.356: E/WindowManager(2770): at android.view.ViewRoot.<init>(ViewRoot.java:247) 
06-02 16:32:14.356: E/WindowManager(2770): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148) 
06-02 16:32:14.356: E/WindowManager(2770): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 
06-02 16:32:14.356: E/WindowManager(2770): at android.view.Window$LocalWindowManager.addView(Window.java:424) 
06-02 16:32:14.356: E/WindowManager(2770): at android.app.Dialog.show(Dialog.java:241) 
06-02 16:32:14.356: E/WindowManager(2770): at com.Sagi.MyOrders.FindOrder.alert_editlist(FindOrder.java:56) 
06-02 16:32:14.356: E/WindowManager(2770): at com.Sagi.MyOrders.FindOrder.onItemLongClick(FindOrder.java:138) 
06-02 16:32:14.356: E/WindowManager(2770): at android.widget.AbsListView.performLongPress(AbsListView.java:1753) 
06-02 16:32:14.356: E/WindowManager(2770): at android.widget.AbsListView.access$600(AbsListView.java:72) 
06-02 16:32:14.356: E/WindowManager(2770): at android.widget.AbsListView$CheckForLongPress.run(AbsListView.java:1711) 
06-02 16:32:14.356: E/WindowManager(2770): at android.os.Handler.handleCallback(Handler.java:587) 
06-02 16:32:14.356: E/WindowManager(2770): at android.os.Handler.dispatchMessage(Handler.java:92) 
06-02 16:32:14.356: E/WindowManager(2770): at android.os.Looper.loop(Looper.java:123) 
06-02 16:32:14.356: E/WindowManager(2770): at android.app.ActivityThread.main(ActivityThread.java:4627) 
06-02 16:32:14.356: E/WindowManager(2770): at java.lang.reflect.Method.invokeNative(Native Method) 
06-02 16:32:14.356: E/WindowManager(2770): at java.lang.reflect.Method.invoke(Method.java:521) 
06-02 16:32:14.356: E/WindowManager(2770): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
06-02 16:32:14.356: E/WindowManager(2770): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
06-02 16:32:14.356: E/WindowManager(2770): at dalvik.system.NativeStart.main(Native Method) 

我找了一個遊標保持打開狀態或數據庫,但我找不到任何東西。 在函數返回之後,有:

finish(); 

這裏是我的創造者alertDialog:

private void alert_editlist(final int id) { 
     // TODO Auto-generated method stub 
     final CharSequence[] items = {"Edit", "Delete"}; 

     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("What do you want to do?"); 
     builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int item) { 
       if (items[item]=="Edit") { 
       } 
       else if(items[item]=="Delete"){ 
        finish(); 
       } 
       finish(); 
      } 
     }); 
     AlertDialog alert = builder.create(); 
     alert.show(); 
    } 

謝謝你!

+0

對話框處理有問題,而不是SQLite命令。例如,當您打開對話窗口並旋轉設備時,會發生泄漏窗口。通過活動娛樂處理對話可能會很棘手。你在這裏用對話做什麼?在'com.Sagi.MyOrders.FindOrder.alert_editlist(FindOrder.java:56)' – Phix

+0

編輯:添加我的對話框創建者。 – SagiLow

+0

http://stackoverflow.com/questions/2850573/activity-has-leaked-window-that-was-originally-added –

回答

0

您關閉與​​

變化finish();dismiss()(之前它插入你的刪除方法調用)一個對話框,你應該得到更好的結果。