我有一个简单的问题,我无法弄清楚如何修复。 我有一个管理联系人的应用程序,它可以添加,更新,保存和删除 我想要的是在单击删除按钮时出现一个“YES”和“NO”选项的确认对话框。
目前我收到错误,它不喜欢我如何尝试访问我的数据库,让它从数据库表中删除联系人。
这是我的代码:
} else if (view == findViewById(R.id.delete)) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to delete this contact?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
UserSQL repo = new UserSQL(this);
repo.delete(_contact_Id);
Toast.makeText(this, "Contact Record Deleted", Toast.LENGTH_SHORT).show();
finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
} else if (view == findViewById(R.id.close)){
finish();
}
它不喜欢的行是
UserSQL repo = new UserSQL(this);
repo.delete(_contact_Id);
Toast.makeText(this, "Contact Record Deleted", Toast.LENGTH_SHORT).show();
finish();
问题出在new UserSQL(this)
内,它不像我调用我的数据库。只有在我尝试将其放入对话框方法时才会出现此问题。
当没有确认时,我的代码完全像这样:
else if (view == findViewById(R.id.delete)) {
UserSQL repo = new UserSQL(this);
repo.delete(_contact_Id);
Toast.makeText(this, "Contact Record Deleted", Toast.LENGTH_SHORT).show();
finish();
我很感激任何帮助,我研究了这个问题并且无法弄清楚为什么,我会喜欢一个很好的解释,也许是另一个建议,如果可能的话,以更简单的方式做到这一点。
答案 0 :(得分:0)
在MainActivity.this
onClick()
public void onClick(DialogInterface dialog, int id) {
UserSQL repo = new UserSQL(MainActivity.this);
repo.delete(_contact_Id);
Toast.makeText(this, "Contact Record Deleted", Toast.LENGTH_SHORT).show();
finish();
}
答案 1 :(得分:0)
Lemme尝试盲目解决这个问题:
final Activity thisActivity = this;
AlertDialog.Builder builder = new AlertDialog.Builder(thisActivity);
builder.setMessage("Are you sure you want to delete this contact?")
.setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
UserSQL repo = new UserSQL(thisActivity);
repo.delete(_contact_Id);
Toast.makeText(thisActivity, "Contact Record Deleted", Toast.LENGTH_SHORT).show();
finish();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
答案 2 :(得分:-1)
试试这段代码:
UserSQL repo = new UserSQL(YourActivityName.this);
repo.delete(_contact_Id);
Toast.makeText(YourActivityName.this, "Contact Record Deleted", Toast.LENGTH_SHORT).show();