Android实现“退出确认”对话框

    @Override
    public void onBackPressed() {
    new AlertDialog.Builder(this).setTitle("确认退出吗?")
        .setIcon(android.R.drawable.ic_dialog_info)
        .setPositiveButton("确定", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
            // 点击“确认”后的操作
            MainFragmentActivity.this.finish();

            }
        })
        .setNegativeButton("返回", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
            // 点击“返回”后的操作,这里不设置没有任何操作
            }
        }).show();
    // super.onBackPressed();
    }

下面是用到的背景图或按钮的图片

经过查找资料和参考了一下例子后才知道,要实现这种效果很简单.就是在设置alertDialog的contentView.

以下的代码是写在Activity下的,代码如下:

public boolean onKeyDown(int keyCode, KeyEvent event) {
 // 如果是返回键,直接返回到桌面
 if(keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_HOME){
           showExitGameAlert();
 }

 return super.onKeyDown(keyCode, event);
}
private void showExitGameAlert() {
 final AlertDialog dlg = new AlertDialog.Builder(this).create();
 dlg.show();
 Window window = dlg.getWindow();
        // *** 主要就是在这里实现这种效果的.
        // 设置窗口的内容页面,shrew_exit_dialog.xml文件中定义view内容
 window.setContentView(R.layout.shrew_exit_dialog);
        // 为确认按钮添加事件,执行退出应用操作
 ImageButton ok = (ImageButton) window.findViewById(R.id.btn_ok);
 ok.setOnClickListener(new View.OnClickListener() {
  public void onClick(View v) {
   exitApp(); // 退出应用...
  }
 });

        // 关闭alert对话框架
        ImageButton cancel = (ImageButton) window.findViewById(R.id.btn_cancel);
        cancel.setOnClickListener(new View.OnClickListener() {
   public void onClick(View v) {
    dlg.cancel();
  }
   });
}

以下的是layout文件,定义了对话框中的背景与按钮.点击事件在Activity中添加.

文件名为 : shrew_exit_dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
 xmlns:Android="http://schemas.android.com/apk/res/android"
 android:layout_height="wrap_content"
 android:layout_width="wrap_content">

 <!-- 退出游戏的背景图 -->
 <ImageView android:id="@+id/exitGameBackground"
  android:layout_centerInParent="true"
  android:layout_height="wrap_content"
  android:layout_width="wrap_content"
  android:src="@drawable/bg_exit_game" />

 <!-- 确认按钮 -->
 <ImageButton android:layout_alignBottom="@+id/exitGameBackground"
  android:layout_alignLeft="@+id/exitGameBackground"
  android:layout_marginBottom="30dp"
  android:layout_marginLeft="35dp"
  android:id="@+id/btn_ok"
  android:layout_height="wrap_content"
  android:layout_width="wrap_content"
  android:background="@drawable/btn_ok" />

 <!-- 取消按钮 -->
 <ImageButton android:layout_alignBottom="@+id/exitGameBackground"
  android:layout_alignRight="@+id/exitGameBackground"
  android:layout_marginBottom="30dp"
  android:layout_marginRight="35dp"
  android:id="@+id/btn_cancel"
  android:layout_height="wrap_content"
  android:layout_width="wrap_content"
  android:background="@drawable/btn_cancel" />
</RelativeLayout>

就这样经过了以上几步,就可以实现自定义AlertDialog的效果了. 用同样的思路可以实现其它更复杂的效果.

时间: 2024-10-05 07:39:12

Android实现“退出确认”对话框的相关文章

Android:实现退出确认对话框

在Android平台上捕获Back键的事件,super.onBackPressed()是执行系统的默认动作,就是退出当前activity,我们要做的就是重写onBackPressed()函数, public void onBackPressed(){ Toast.makeText(this, "你点击了返回键", Toast.LENGTH_LONG).show(); } 在Activity.class里实现 public void onBackPressed() { new Alert

Android 手机卫士--确认密码对话框编写

本文接着实现“确认密码”功能,也即是用户以前设置过密码,现在只需要输入确认密码 本文地址:http://www.cnblogs.com/wuyudong/p/5940718.html,转载请注明出处. 布局文件和<Android 手机卫士--设置密码对话框>中的布局基本类似,所有copy一下,修改一点细节就搞定: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and

android:常用的AlertDialog对话框及自定义对话框

常用的Dialog有确认对话框,单选按钮对话框,多选按钮对话框,复选按钮对话框另外还有自定义的对话框 AlertDialog的常用方法 setTitle:为对话框设置标题 setMessage:为对话框设置内容 setIcon:为对话框设置图标 setItems设置对话框要显示的list setMultiChoiceItems:一般用于复选框显示 setSingleChoiceItem:,设置单选按钮 setNeutralButton:普通按钮 setPositiveButton:添加确定按钮

Android界面设计之对话框——定制Toast、AlertDialog

一.概述 在界面设计中需要根据用户操作显示提示信息.出错信息等,就要用到对话框.Android实现提示信息显示常用有两种方式 1.Toast 2.AlertDialog 二.Toast Android中用来显示显示信息的一种机制,属于轻量级消息开发中使用频率很高.其特点 1. 不接受用户操作,没有焦点 2. 显示的时间有限,过一定的时间就会自动消失. 使用Toast显示信息非常简单,操作如下: Toast toast=Toast.makeText(this, "数据加载完成", Toa

[android] 手机卫士自定义对话框布局

手机防盗页面部分 点击手机防盗,进行判断,如果没有设置密码,显示一个设置密码的对话框,如果已经设置密码了,弹出输入密码对话框 密码保存在SharedPreferences中,数据取出进行判断 自定义一个布局文件,dialog_setup_password.xml 根布局宽度不要充满屏幕 内部控件,宽度要小一点留出空间,居中对齐,android:gravity=”center” 两个并排的按钮,确定和取消,线性布局水平朝向 获取AlertDialog.Builder对象,通过new Builder

Android 5中样式对话框

package com.imooc.dialog; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.V

实现对gridview删除行时弹出确认对话框的一种简单方法

在VS2008提供的GridView中我们可以直接添加一个CommandField删除列:<asp:CommandField ShowDeleteButton="True" />,完后在它的RowDeleting事件中完成删除.但在多半我们在做这种删除操作时都需要先让操作者再确认下,完后再进行删除,以避免误操作引起的误删除.可以通过下面方法给GridView删除前加上个确认对话框.首先,在GridView的属性对框话框中点击“Columns”进入它的“字段”设计器.接着在“

android多选项表对话框

activity_main_01.xml: <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"       android:orientation="vertical" android:layout_width="match_par

android 显示自定义视图对话框

activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button a