我有一个程序.第一个活动是启动画面,第二个是登录,第三个是列表视图菜单活动,然后是其他2个活动.启动画面在3秒后消失,如果登录复选框记住我,则会直接进入菜单页面.
我覆盖onBackPressed
菜单活动中的功能,以便在用户从菜单中单击后直接退出程序.但是,如果我经历了其他活动,它就不会退出; 它会转到堆栈中的上一个活动,并且对话框不会弹出,虽然它实际上确实会出现一秒钟并且立即消失.
这是我的 onBackPressed
功能
public void onBackPressed() {
// super.onBackPressed();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you Sure want to close the Application..?")
.setCancelable(false)
.setTitle("EXIT")
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
})
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
finish();
}
});
AlertDialog alert = builder.create();
alert.show();
//super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
Rag*_*dan 10
我建议你按照WarrenFaith的建议在下面的评论中使用ActionBar.请查看下面的链接以获取更多信息
http://developer.android.com/design/patterns/navigation.html
这是一个相同的教程
http://www.vogella.com/articles/AndroidActionBar/article.html
你可以用它.然而,这似乎也是一个糟糕的设计.您可以查看以下评论以了解原因
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
}
return super.onKeyDown(keyCode, event);
}
public void onBackPressed() {
Intent myIntent = new Intent(MyActivity.this, MainActivity.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(myIntent);
finish();
return;
}
Run Code Online (Sandbox Code Playgroud)
当你回来按下清除活动堆栈和naviagate到MainActivity时,Onn后退按钮按下当前活动.
另外我建议不按下后退按钮显示警告对话框.这是一个糟糕的设计.你可以搜索SO.我读了同样的东西,并通过commonsware回答
归档时间: |
|
查看次数: |
21124 次 |
最近记录: |