2012-06-02 61 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()(之前它插入你的删除方法调用)一个对话框,你应该得到更好的结果。