我有下一个代码,当我按下" OK"时,我无法放置finish();
Button
(进入Dialog
)。
public void showAlertDialog(Context context, String title, String message,
Boolean status) {
AlertDialog alertDialog = new AlertDialog.Builder(context).create();
// Setting Dialog Title
alertDialog.setTitle(title);
// Setting Dialog Message
alertDialog.setMessage(message);
if(status != null)
// Setting alert dialog icon
alertDialog.setIcon((status) ? R.drawable.success : R.drawable.fail);
// Setting OK Button
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
// Showing Alert Message
alertDialog.show();
}
}
它错了什么?我的意思是,我不太了解,我是新手,但我只是不想要解决方案,如果可能的话,我也想要解释。
答案 0 :(得分:3)
finish()只能完成Activity.But你要关闭你的应用程序然后finish()将无法正常工作。为此你必须调用这个方法。
alertDialog.dismiss();
System.exit(0);
答案 1 :(得分:1)
可能的解释是此功能不在您的活动类中。如果是这样,您将必须在此课程中获取您的活动实例。例如,如果它是mActivity那么使用
你的节目功能mActivity.finish()
。
答案 2 :(得分:1)
如果你想从一个对话框中关闭一个应用程序,但是finish()只会完成()当前的Activity?试试System.exit(0);用一个监听器回调Activity。
interface Listener{
onOK();
}
Dialog{
onClick(){
Listener.onOK();
}
}
Activity implements Listener{
onOK(){
this.finish();
System.exit(0);
}
}
答案 3 :(得分:1)
由于您拥有Context
中的Activity
,请将其转换为Activity
并在其上调用finish()
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
((Activity)context).finish();
}
这样做你需要使context
成为最终版,或者使其成为这个类的成员变量。