Android Can';无法从对话框关闭应用程序?
我有下一个代码,在那里我不能放置Android Can';无法从对话框关闭应用程序?,android,android-alertdialog,Android,Android Alertdialog,我有下一个代码,在那里我不能放置finish()当我按下“确定”按钮时(进入对话框) 怎么了?我的意思是,我不太明白,我是新手,但我只是不想要解决方案,如果可能的话,我也想要解释。可能的解释是这个函数不在你的活动类中。如果是这样的话,您将必须获取该类中的活动实例。例如,如果是mActivity,则使用 mActivity.finish()。如果是这样的话,您将必须获取该类中的活动实例。例如,如果是mActivity,则使用 mActivity.finish()?尝试系统。退出(0);使用对活动的
finish()代码>当我按下“确定”按钮时(进入对话框)
怎么了?我的意思是,我不太明白,我是新手,但我只是不想要解决方案,如果可能的话,我也想要解释。可能的解释是这个函数不在你的活动类中。如果是这样的话,您将必须获取该类中的活动实例。例如,如果是mActivity,则使用
mActivity.finish()。如果是这样的话,您将必须获取该类中的活动实例。例如,如果是mActivity,则使用
mActivity.finish()?尝试系统。退出(0);使用对活动的侦听器回调
interface Listener{
onOK();
}
Dialog{
onClick(){
Listener.onOK();
}
}
Activity implements Listener{
onOK(){
this.finish();
System.exit(0);
}
}
如果您想从对话框中关闭应用程序,您可以,但是finish()将只完成()当前活动?尝试系统。退出(0);使用对活动的侦听器回调
interface Listener{
onOK();
}
Dialog{
onClick(){
Listener.onOK();
}
}
Activity implements Listener{
onOK(){
this.finish();
System.exit(0);
}
}
由于您有来自活动的上下文
,请将其转换为活动
,并在其上调用finish()
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
((Activity)context).finish();
}
执行此操作时,您需要将上下文设置为final,或将其设置为该类的成员变量。因为您的活动中有上下文,所以将其转换为活动
,并在其上调用finish()
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
((Activity)context).finish();
}
执行此操作时,您需要将上下文设置为final,或将其设置为该类的成员变量。finish()只能完成活动。但如果您想关闭应用程序,则finsih()将无法工作。为此,必须调用此方法
alertDialog.dismiss();
System.exit(0);
finish()只能完成活动。但如果要关闭应用程序,finsih()将无法工作。为此,必须调用此方法
alertDialog.dismiss();
System.exit(0);
解释为什么你“不能”把finish()
放在那里。什么是/没有发生?错误?@codeMagic Yep,我得到错误:/“对于类型new DialogInterface,方法finish()未定义。OnClickListener(){}”PS:我不在我的“主”活动中。是的,那就是你的问题。您需要传递对活动的引用,或者创建对活动的回调getActivity()。finish()
可能有效,这取决于您使用的类的类型。请解释为什么“不能”将finish()
放在那里。什么是/没有发生?错误?@codeMagic Yep,我得到错误:/“对于类型new DialogInterface,方法finish()未定义。OnClickListener(){}”PS:我不在我的“主”活动中。是的,那就是你的问题。您需要传递对活动的引用,或者创建对activivty的回调getActivity().finish()
可能会工作,这取决于您使用的类的类型。lol,我认为这是出于这个原因,但不是。将其放在下面:“AlertDialogManager.finish();”AlertDialogManager.java是类。我得到了这个错误:“类型AlertDialogManager的方法finish()未定义”。我试着完成一个方法,但我不明白它到底是什么。(而且不起作用)那么请把你的全班都发出去。哈哈,我想那是因为那个原因,但不是。将其放在下面:“AlertDialogManager.finish();”AlertDialogManager.java是类。我得到了这个错误:“类型AlertDialogManager的方法finish()未定义”。我试着完成一个方法,但我不明白它到底是什么。(而且不起作用)那么请把你的全班发出去。