今天,遇到了一个奇葩的问题,调了一上午,原来是传上下文有问题:代码如下
// 信息对话框
final AlertDialog.Builder uBuilder = new AlertDialog.Builder(this);
xlistView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
final int position, long id) {
uBuilder.setMessage("你确认要删除吗?")
.setPositiveButton("是",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
map = datas.get(position-1);
//id 是记录的行号,_id 主键
String id = map.get("_id").toString();
System.out.println("===========>"+id);
// 删除数据
//datas.remove(position-1);
DataManager dataManagers=new DataManager(getApplicationContext()); ///注意,这里的上下文
dataManagers.delete(id);
datas=dataManagers.find();
adapter.notifyDataSetChanged();
Toast.makeText(getBaseContext(),
"删除成功", Toast.LENGTH_SHORT)
.show();
}
})
.setNegativeButton("否",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
}).show();
return true;
}
});