0

我正在做一个购物应用程序,我在列表视图中加载了每一行,每一行都有一个删除按钮。当我单击删除按钮时,我可以获得它的位置和行的 ID。我的问题是当我从 customadapter 类中按钮的 onclick 函数调用数据库函数时,我得到一个 nulpointerexception。

我想要的是通过传递从数据库中删除选定的行

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
    Product prod = data.get(pos);
    //String gt=prod.getProductName();
     prodid=prod.getId();
     prod.setId(prodid);

                   //passing id to database class gives NULLPOINTEREXCEPTION when opening database
               dcon.open(); 
               dcon.DoDeleteItem(prodid)

//just to show that button clicked  
Log.i("Delete Button Clicked", "**********");
Toast.makeText(context, "Delete button Clicked"+prodid+"::",
Toast.LENGTH_SHORT).show();


}
});
4

1 回答 1

0

我想您正在为列表视图行使用自定义布局,并且您已经为列表视图创建了一个自定义适配器?如果没有,我建议你这样做。

然后你可以做的就是将删除按钮的标签设置为代表数据库的光标数据的位置或id。然后在您的 onclick 方法中,将视图转换回删除按钮的类(它可以是 Button 或 ImageButton,具体取决于您用作删除按钮的类)。然后使用读取标签并将其转换回整数位置或 id。现在你可以调用你的数据库——特别是删除函数并传入这个位置/id。

于 2013-07-19T06:34:58.063 回答