如何显示一对话框,以确认用户希望退出一个机器人活动? [英] How to show a dialog to confirm that the user wishes to exit an Android Activity?

查看:144
本文介绍了如何显示一对话框,以确认用户希望退出一个机器人活动?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在试图表现出你想退出吗?对话框类型,当用户试图退出一个活动。

不过,我无法找到相应的API钩子。 Activity.onUserLeaveHint()最初看起来很有希望,但我不能找到一种方法,从完成停止活动。

解决方案

  @覆盖
公共布尔的onkeydown(INT键code,KeyEvent的事件){
    //处理后退按钮
    如果(键code == KeyEvent.KEY code_BACK){
        //询问用户是否想退出
        新AlertDialog.Builder(本)
        .setIcon(android.R.drawable.ic_dialog_alert)
        .setTitle(R.string.quit)
        .setMessage(R.string.really_quit)
        .setPositiveButton(R.string.yes,新DialogInterface.OnClickListener(){

            @覆盖
            公共无效的onClick(DialogInterface对话,诠释它){

                //停止活动
                YourClass.this.finish();
            }

        })
        .setNegativeButton(R.string.no,空)
        。显示();

        返回true;
    }
    其他 {
        返回super.onKeyDown(键code,事件);
    }

}
 

在安卓2.0及以上版本,这将是这样的:

  @覆盖
公共无效onBack pressed(){
    新AlertDialog.Builder(本)
        .setIcon(android.R.drawable.ic_dialog_alert)
        .setTitle(闭幕活动)
        .setMessage(你确定要关闭这个活动?)
        .setPositiveButton(是,新DialogInterface.OnClickListener()
    {
        @覆盖
        公共无效的onClick(DialogInterface对话,诠释它){
            完();
        }

    })
    .setNegativeButton(否,空)
    。显示();
}
 

I've been trying to show a "Do you want to exit?" type of dialog when the user attempts to exit an Activity.

However I can't find the appropriate API hooks. Activity.onUserLeaveHint() initially looked promising, but I can't find a way to stop the Activity from finishing.

解决方案

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    //Handle the back button
    if(keyCode == KeyEvent.KEYCODE_BACK) {
        //Ask the user if they want to quit
        new AlertDialog.Builder(this)
        .setIcon(android.R.drawable.ic_dialog_alert)
        .setTitle(R.string.quit)
        .setMessage(R.string.really_quit)
        .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {

                //Stop the activity
                YourClass.this.finish();    
            }

        })
        .setNegativeButton(R.string.no, null)
        .show();

        return true;
    }
    else {
        return super.onKeyDown(keyCode, event);
    }

}

In Android 2.0+ this would look like:

@Override
public void onBackPressed() {
    new AlertDialog.Builder(this)
        .setIcon(android.R.drawable.ic_dialog_alert)
        .setTitle("Closing Activity")
        .setMessage("Are you sure you want to close this activity?")
        .setPositiveButton("Yes", new DialogInterface.OnClickListener()
    {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            finish();    
        }

    })
    .setNegativeButton("No", null)
    .show();
}

这篇关于如何显示一对话框,以确认用户希望退出一个机器人活动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆