我正在做一个购物应用程序,我在列表视图中加载了每一行,每行都有一个删除按钮。当我点击删除按钮时,我可以得到它的位置和行的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();
}
});
答案 0 :(得分:0)
我认为您正在为列表视图行使用自定义布局,并且您已为列表视图创建了自定义适配器?如果没有,我建议你这样做。
您可以做的是将删除按钮的标记设置为表示数据库的光标数据的位置或id。在你的onclick方法中,然后将视图转换回你的删除按钮的类(它可以是Button,也可以是ImageButton,具体取决于你用作删除按钮的类)。然后使用标签读出并将其强制转换为整数位置或id。现在,您可以调用您的数据库 - 特别是删除函数并传入此位置/ id。