我想使用我的SQLHandler的删除功能:
public void removeProduct(int id) {
try {
String a;
a = Integer.toString(id);
getWritableDatabase().delete(TABLE_INCOME, KEY_ID + " = ?", new String[] { a });
} catch (Exception e) {
e.printStackTrace();
}
}
我在查看活动
中使用它viewHolder.txt_price.setText( Long.toString(_incomelist.get(position).getPrice()).trim());
viewHolder.txt_type.setText(_incomelist.get(position).getType().trim());
viewHolder.txt_date.setText(_incomelist.get(position).getDate().trim());
viewHolder.txt_desc.setText(_incomelist.get(position).getDescription().trim());
viewHolder.txt_pmode.setText(_incomelist.get(position).getPaymode().trim());
final int temp = position;
(convertView.findViewById(R.id.imageButton2))
.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
AlertDialog.Builder alertbox = new AlertDialog.Builder(
ViewContact.this);
alertbox.setCancelable(true);
alertbox.setMessage("Are you sure you want to delete ?");
alertbox.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
try{
db.removeProduct(temp);
ViewContact.this.onResume();
Toast.makeText(getApplicationContext(),"Deleted..",Toast.LENGTH_SHORT).show();
}
catch(Exception e)
{
e.printStackTrace();
}
}
});
alertbox.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface arg0, int arg1) {
}
});
alertbox.show();
}
});
问题部分是这样,它不会抛出任何类型的异常。请纠正我! OR 请告诉我如何调用此功能?
答案 0 :(得分:1)
它不会抛出异常,因为delete
不会抛出异常。相反,它返回已删除行的数量。在你的情况下,可能是0。
问题是您使用适配器中的位置而不是实际ID。
我假设您的代码位于onItemClick
?在这种情况下,请使用long id
参数而不是位置。