編輯:關於Android編程
在安卓開發中,我們經常要對按鍵進行監聽,今天跟大家分享一下最常用的按下返回退出功能的實現.
如果沒有對返回鍵設置監聽,通常按下一次返回鍵就會退出程序或退出某個界面,這樣是很不人性化的,我們可以有兩種處理方式:
下面分別介紹著兩種實現方式
1. 按下返回鍵時彈出一個對話框(AlertDialog),再讓用戶選擇是否退出
實現思路:
重寫onKeyDown方法 在方法中,判斷返回按鍵被按下的時候創建一個對話框並顯示 給對話框的按鈕設置點擊監聽代碼示例:
//重寫onKeyDown方法,對按鍵(不一定是返回按鍵)監聽 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) {//當返回按鍵被按下 AlertDialog.Builder dialog = new AlertDialog.Builder(context);//新建一個對話框 dialog.setMessage("確定要退出測試嗎?");//設置提示信息 //設置確定按鈕並監聽 dialog.setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish();//結束當前Activity } }); //設置取消按鈕並監聽 dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //這裡什麼也不用做 } }); dialog.show();//最後不要忘記把對話框顯示出來 } return false; }
這樣,就實現了點擊返回按鍵時彈出對話框,並交由用戶處理退出的功能
2.雙擊返回退出
實現思路:
重寫onKeyDown方法 聲明一個全局的布爾值isExit,默認為false 第一次點擊返回按鍵時,彈出Toast提示,並調用exit()方法 exit()方法中,判斷isExit值,並執行相應邏輯(具體看代碼吧,原諒我真不知道怎麼描述了……)代碼示例:
//聲明一個全局布爾值,默認為false public boolean isExit = false; //重寫onKeyDown方法, public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) {//當返回按鍵被按下 //調用exit()方法 exit(); } return false; } //被調用的exit()方法 private void exit() { Timer timer;//聲明一個定時器 if (!isexit) { //如果isExit為false,執行下面代碼 isexit = true; //改變值為true Toast.makeText(TestActivity.this, "再按一次退出測試", Toast.LENGTH_SHORT).show(); //彈出提示 timer = new Timer(); //得到定時器對象 //執行定時任務,兩秒內如果沒有再次按下,把isExit值恢復為false,再次按下返回鍵時依然會進入if這段代碼 timer.schedule(new TimerTask() { @Override public void run() { isexit = false; } }, 2000); } else {//如果兩秒內再次按下了返回鍵,這時isExit的值已經在第一次按下時賦值為true了,因此不會進入if後的代碼,直接執行下面的代碼 finish(); } }
嗯,就這樣,雙擊退出的功能也實現了,如果看不懂,建議大家自己寫一遍就能明白邏輯了.
最後:我也是新手<( ̄3 ̄)> …不知道怎麼表達更清楚,求大神輕輕的嘲諷,關愛菜鳥,人人有責!
還有,onKeyDown()的return一直沒搞太懂,有沒有大神能告知呢?
一、Android Camera可以做哪些?1、功能拍攝相片 視頻錄制 取景器(掃描類應用,如人臉識別,名片識別,條形碼識別)2、根據Camera API實現自己的拍照程
在上一篇文章Android 最火的快速開發框架XUtils中簡單介紹了xUtils的基本使用方法,這篇文章說一下xUtils裡面的注解原理。 先來看一下xU
實現ListView過濾功能最方便的便是使用ArrayAdapter,裡面自帶的getFilter()方法能很方便的實現此功能但是在實際的開發中,ArrayAdapte
程序運行效果圖: 程序代碼: /** * 獲取所有軟件信息 * 1.通過異步的方式顯示系統中所有軟件 * 2.單擊打開指定軟件 * 3.將所有軟件的包名