android 細節之禁用返回鍵,android細節
今天項目中需要使用自己actionBar中的返回鍵,用的方法就是上次我記錄下的父親activity的方法
android.support.PARENT_ACTIVITY
詳情請移步:http://blog.csdn.net/yiding_he/article/details/38410151
(android 細節之 menu 之 invalidateOptionsMenu)
今天的問題是禁用系統的返回鍵,禁用home鍵應該是需要permission,而且禁用後使用者體驗不夠。所以項目中我們防止使用者突然中斷的方法就是禁用系統返回鍵。
具體寫法如下:
public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {return true;}return false;}
複寫系統的onKeyDown方法即可。同樣可以禁用其他的鍵,用switch或是if都可以。
怎不屏蔽Android系統的返回按鍵
第一種方法:public boolean onKeyDown(int keyCode, KeyEvent event) {// TODOAuto-generated method stubif (keyCode== KeyEvent.KEYCODE_BACK) {morePopumenu.disMissMenu();//returntrue;//return false;這裡如果你是返回的true,false,那麼就不會執行系統的返回操作,不能返回//上一個介面,因為這樣就沒有回調父類的onKeyDown方法就返回了。所以應該這樣寫如下:return super.onKeyDown(keyCode, event);}returnsuper.onKeyDown(keyCode, event);}第二種方法:public boolean onKeyDown(int keyCode, KeyEvent event) {// TODOAuto-generated method stub//重寫方法後,我們就調用父類的方法,這樣以便系統的方法可以調用,這句一肯不能忘記super.onKeyDown(keyCode, event);if (keyCode== KeyEvent.KEYCODE_BACK) {morePopumenu.disMissMenu();//現在返回:true,代表讓系統能繼續處理此按鍵的操作//返回false:代表該按鍵的處理到此結束,不響應系統的處理returntrue;}returnsuper.onKeyDown(keyCode, event);}
android 由於手機上的“返回”鍵就關閉了整個activity我想在介面上做一個“返回按鈕”返回到上一層
可以換個思路.
如果你的listview是兩個的話,你可以定義一個全域變數,
在listview1上點擊,進入listview2時,把這個變數設定為1,來記錄需要返回的頁面是1.
然後重寫返回鍵的按鈕,判斷這個變數是幾.如果是1時,就隱藏listview2,顯示listview1.
如果是一個listview,那就在返回鍵上判斷變數是1時,就重新重新整理listview,重新載入資料.
不過建議是第一種那麼做,隱藏顯示很方便.
setVisibility(View.GONE)是隱藏,setVisibility(View.VISIBLE)是顯示.
另外 監聽返回鍵的是這裡.
public boolean onKeyDown(int keyCode, KeyEvent event) {
//判斷按下的鍵是返回鍵.
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
switch(pageID){
case 1 : //是1時
listview1.setVisibility(View.VISIBLE);
listview2.setVisibility(View.GONE);
break;
}
}
}
同樣,若不想用返回鍵,想用自訂按鈕的話也是一樣的.在button的事件裡控制隱藏顯示.
如何寫按鈕的監聽麼..這個.
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//被點後做什麼.
}
});
有很多種實現方式,樓主不要被"上一層"而禁錮住了,換一種思考方式就ok了.:)
素藍手打回答,歡迎思路遇到問題的新手童鞋們複製 :)