我有一个用于显示错误的警告框。它是一个通用的实用类,我可以从任何活动调用。当我调用错误框时,我将当前活动与错误消息一起传递。
Util.showAlert(this,"error message goes here");
我的showAlert看起来像这样
AlertDialog alertDialog = new AlertDialog.Builder(act).create();
// Setting Dialog Title
alertDialog.setTitle("ERROR");
// Setting Dialog Message
alertDialog.setMessage(msg);
// Setting OK Button
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
// Showing Alert Message
alertDialog.show();
}
我遇到了最近的一个问题,并且不确定解决此问题的最佳方法以及任何将来调用相同通用警报框的方法。我的MainActivity称为SecondActivity。在onCreate for the activity中,我做了一些处理,然后需要打开一个数据库并获取一些信息。如果信息不可用,我无法运行SecondActivity,因此必须退出并返回MainActivity。
在我的SecondActivity中的错误检查例程中,我检查是否有数据...如果我这样做,我继续。如果没有,我打电话:
Util.showAlert(this,"Whoops, we have a problem");
finish();
问题是,在showAlert打开之前,finish()会触发并关闭SecondActivity。
在正常情况下出现错误,我仍在进行该活动。在这种情况下,我不是。
最好的办法是什么?
答案 0 :(得分:1)
问题是,finish()触发并且SecondActivity关闭 在showAlert打开之前。
显示提醒后或用户通过调用以下方式在AlertDialog上按OK
按钮时完成活动:
act.finish();
<{1>} onClick
方法中的。
答案 1 :(得分:0)
你需要在代码显示对话框中更改你的逻辑,流动我 AlertDialog alertDialog = new AlertDialog.Builder(act).create();
// Setting Dialog Title
alertDialog.setTitle("ERROR");
// Setting Dialog Message
alertDialog.setMessage(msg);
// Setting OK Button
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
act.finish(); // act is Activity(context) showing Alert
}
});
// Showing Alert Message
alertDialog.setCancelable(false) // cannot dismiss without Ok button
alertDialog.show();
}
如果出现错误,您只需拨打
Util.showAlert(this,"Whoops, we have a problem");