Android:从自定义对话框退出应用程序
我为我的主要活动创建了一个自定义对话框,有两个按钮,Android:从自定义对话框退出应用程序,android,dialog,exit,dismiss,activity-finish,Android,Dialog,Exit,Dismiss,Activity Finish,我为我的主要活动创建了一个自定义对话框,有两个按钮,退出和继续: public class AgeConfirmationDialog extends Dialog { public AgeConfirmationDialog(Activity a) { super(a); } protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIns
退出
和继续
:
public class AgeConfirmationDialog extends Dialog {
public AgeConfirmationDialog(Activity a) {
super(a);
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setCancelable(false);
setContentView(R.layout.age_dialog);
// .....
// Find the View objects; checkboxes and buttons logic; SharedPreferences
// .....
}
// .....
}
以下是从MainActivity启动对话框的方式:
AgeConfirmationDialog d = new AgeConfirmationDialog(this);
d.show();
每次启动主活动时,都会弹出此自定义对话框,并要求确认年龄。我不希望用户使用后退按钮关闭此对话框,因此我在onCreate
方法中添加了setCancelable(false)
。继续
按钮被禁用,直到选中复选框。如果按下继续
按钮,该对话框将被取消-使用setOnClickListener
问题是当按下退出按钮时,我不知道如何关闭自定义对话框并完成主要活动
是否可以通过在退出
按钮上设置视图,在年龄确认对话框
类中执行此操作
我不知道如何关闭自定义对话框并完成主对话框
按下退出按钮时的活动
然后您只需输入ExitButton Click Listener:
finish();
例如:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton("Exit", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
}).create().show();
在退出按钮的onclicklistener中执行某些操作。比如:
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
你的主要活动是:
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
这里基本上要做的是转到mainactivity,这是一个带有一些额外键/值的开始活动,并通过getintent在mainactivity中检查它
这是退出应用程序的最佳过程,您也可以在注销时使用它。将代码更改为类似以下内容:
public class AgeConfirmationDialog extends Dialog {
Activity mainActivity;
public AgeConfirmationDialog(Activity a) {
super(a);
this.mainActivity = a;
}
//in onClick method of finish-button
public void onFinishClick(View v) {
mainActivity.finish(); //finish activity
}
}
考虑到我有一个扩展Dialog的AgeConfirmationDialog类,我怎么能做到这一点呢?一点也不,你只需要把我的代码放进去,然后像我那样做。您还可以在这里看到我是如何在警报对话框中实现xml布局的。正是我要找的!非常感谢。非常感谢。但这不是比Manu的版本慢吗?它会重新启动你的活动。。。所以它稍微慢一点