Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3309651
  • 博文数量: 366
  • 博客积分: 9916
  • 博客等级: 中将
  • 技术积分: 7194
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-29 23:27
个人简介

简单!

文章分类

全部博文(366)

文章存档

2013年(51)

2012年(269)

2011年(46)

分类: 嵌入式

2012-10-26 11:04:03

       在Android的手机里面,有个返回按键,通过返回按键,用户可以返回上一层的Activity, 又或者可以直接退出程序。这样,就给用户带来一个新的问题,当用户正在做着一些非常重要的事情的时候,比如浏览文件、或者是在编辑重要的数据的时候,不小心按了返回键,如果 当前的Activity正好是处于最外一层的时候,如果没有给按键定义一个退出的按钮的时候。用户可能通过返回按键就直接退出了整个程序,从而导致了一些 用户使用上的不必要而且可以避免的不愉快的事情发生。

       那么,在整个程序退出的时候,如何做到提示的作用呢?我们希望做到的是,当用户要退出整个程序的时候,程序给出一个提示按钮,等用户再次确认后才退出。

       现在,先看看如何编写退出程序的提示对话框。程序会用到AlertDialog 这个类,在这个类里面,当用户选择返回键的时候,会有两个按钮,一个是“确定”,一个是“取消”。为了响应事件,需要编写事件响应函数AlterDialog.setPositiveButton(int textId, DialogInterface.OnClickListener listener).

-  textId, 要显示给用户看的资源或者文本

-  listener, 是用户单击“确定”或者“取消”按钮所响应的时间

       当用户选择“确定”,就退出当前的对话框。其中,有个很重要的函数,Activity.finish(),通过调用这个函数,退出当前运行的整个Android程序。当用户选择“取消”的时候,只要单纯的retuan,即可返回主程序。可以定义一个showTips()的专用方法在main Activity里面,那么每次我们写的时候,就调用这个函数的就可以了。

  1. private void showTips() {

  2.         AlertDialog alertDialog = new AlertDialog.Builder(this)
  3.                 .setTitle("退出程序").setMessage("是否退出程序")
  4.                 .setPositiveButton("确定", new DialogInterface.OnClickListener() {

  5.                     public void onClick(DialogInterface dialog, int which) {
  6.                         finish();
  7.                     }

  8.                 }).setNegativeButton("取消",

  9.                 new DialogInterface.OnClickListener() {
  10.                     public void onClick(DialogInterface dialog, int which) {
  11.                         return;
  12.                     }
  13.                 }).create(); // 创建对话框
  14.         alertDialog.show(); // 显示对话框
  15.     }

       那么,在哪里调用这个提示的方法呢?应该找到的是返回按键的响应时间,也就是函数Activity. onKeyDown(int keyCode, KeyEvent event) 函数里面响应事件的发生。

  1. public boolean onKeyDown(int keyCode, KeyEvent event) {

  2.         if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
  3.             showTips();
  4.             return false;
  5.         }

  6.         return super.onKeyDown(keyCode, event);
  7.     }

       至此,通过复写onKeyDown函数,当用户单击返回的按钮的时候,就会弹出提示的对话框,可以有效地防止用户由于失误引起的不必要的退出。注意:强按Home键,一样可以退出应用,避开了提示框,这个方法只适合按返回键。


阅读(8040) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~