Android實現回退

很多網友不明白如何在Android平臺上捕獲Back鍵的事件,Back鍵是手機上的後退鍵,一般的軟件不捕獲相關信息可能導致你的程序被切換到後臺,而回到桌面的尷尬情況,在Android上有兩種方法來獲取該按鈕的事件。

  1.直接獲取按鈕按下事件,此方法兼容Android 1.0到Android 2.1 也是常規方法,直接重寫Activity的onKeyDown方法即可,代碼如下:

@Override public boolean onKeyDown(int keyCode, KeyEvent event)  {    
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
//按下的如果是BACK,同時沒有重複
Toast.makeText(ml78.this,"魔力去吧Back鍵測試",1).show();
return true;
}
return super.onKeyDown(keyCode, event);
}

而對於Android 2.0開始又多出了一種新的方法,對於Activity 可以單獨獲取Back鍵的按下事件,直接重寫onBackPressed方法即可,代碼如下

 

@Override public void onBackPressed() { 
// 這裏處理邏輯代碼,大家注意:該方法僅適用於2.0或更新版的sdk
return;
}

如果想實現直接提示退出程序則可參考以下代碼:

@Override  
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
ExitDialog(MainActivity.this).show();
return true;
}

return super.onKeyDown(keyCode, event);
}

彈出DIALOG實現如下:

/** 
* 提示退出系統
*
@param context
*
@return
*/
private Dialog ExitDialog(Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setIcon(R.drawable.icon);
builder.setTitle("系統信息");
builder.setMessage("確定要退出程序嗎?");
builder.setPositiveButton("確定",
new DialogInterface.OnClickListener() {
publicvoid onClick(DialogInterface dialog, int whichButton){
finish();
}
});
builder.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
publicvoid onClick(DialogInterface dialog, int whichButton) {
}
});
return builder.create();
}
如果只想回退一步,則只需調用onBackPressed(),亦可以重寫實現相關業務邏輯。
 

 
發佈了22 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章