android 細節之禁用返回鍵,android細節

來源:互聯網
上載者:User

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了.:)

  素藍手打回答,歡迎思路遇到問題的新手童鞋們複製 :)
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.