2015-01-09 121 views
0

好吧,我已经建立了一个应用程序像一个余数,每件事情都很好,但当点击删除,首先删除错误的行,那么现在甚至不工作。删除列表视图项目从数据库中,Android

我现在有很多相同的问题的答案,我发誓我尝试每一个我发现!

有一件事我不知道!

这个代码在MainActivitey:

lvEvent.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) { 


      db.deleteEvent(id); 

      return true; 
     } 
    }); 

这里是在数据库中删除部:

public boolean deleteEvent(long id){ 
    return ((
    db.delete(TB_EVENT, COLUMN.Id + "=" + id, null ) 
    //db.delete(TB_EVENT, COLUMN.id + "=?", new String[] { String.valueOf(id)}); 
    ) == 1) ? true : false; 
} 

也有填充列表视图的适配器。

+0

什么样的对象是分贝?您也可能想要发布列表视图的自定义适配器。 – almyz125

回答

0

也许你错过COLUMN.IddeleteEvent方法。 long id是ListView行创建期间动态创建的项目的行标识(不是单击项目的位置)。

所以你需要通过positiondeleteEvent方法:

 db.deleteEvent(position); 
+0

感谢,它现在的作品,但它删除了第二行关于我的压力! – GAOS

+0

@GAOS:调试你的代码当第一个项目被点击或者第二个项目被点击时,什么是'position'的值?你可能需要通过'(position-1)' –

+0

我认为OP不能依赖'position'从数据库中删除项目。在每次删除后,所有项目的位置相对值都会改变。 – Rohit5k2

相关问题