2011-04-15 47 views
12

我正在交換應用程序...我想禁用後退按鈕。所以我用這個代碼...並傳遞給它的意圖..如何禁用android中的後退按鈕

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
     // do something on back. 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 

但在當我按下返回鍵在模擬器中運行它更新活動,但是當我抑制後退按鈕切換到的主頁模擬器..請建議是他們的任何其他方法

+1

你可以重寫這些方法'dispatchKeyEvent','onBackPressed','onKeyDown'中的任何一個。有關更多信息,請參閱[本答案](https://stackoverflow.com/a/44714357/6521116)。 – 2017-06-23 07:17:28

回答

62
@Override 
public void onBackPressed() { 
    // do nothing. 
} 
+0

是的..這種方法運行良好.. thanx – Sam 2011-04-15 09:34:19

+0

我剛剛應用@Override public void onBackPressed(){ //什麼都不做。 return; } 和現在申請的意圖,我可以切換到我想要的頁面 – Sam 2011-04-15 09:34:38

+0

謝謝你,它也幫助我:) – Dimitri 2013-01-08 12:34:40

6

你嘗試onBackPressed()?

@Override 
public void onBackPressed() { 
     // Do as you please 
} 
3

這是我的解決方案 它的工作原理採用Android 2.2

覆蓋onBackPressed()...

public void onBackPressed() { 
    // check if you are in the right mode 
    if (getCurrentState() == FORM_STATE_BROWSE) { 
     // ok do default back action 
     super.onBackPressed(); 
    } 

    // exit skipping "onBackPressed()" 
    return; 
} 
16
@Override 
     public void onBackPressed() { 
      //super.onBackPressed(); 
      if(SOME_CONDITION_TO_CHECK){ 
       //THIS BLOCK WILL NOT DO ANYTHING AND WOULD DISABLE BACK BUTTON 

      }else{ 
       super.onBackPressed(); 
//THIS BLOCK WILL BE CALLED IF ABOVE COND IS FALSE, AND WOULD ENABLE BACK BUTTON 
      } 

     } 
1

,如果你想在某些活動而移動像通過按下返回按鈕,在您的活動中覆蓋此方法

012爲了
@Override 
    public void onBackPressed() { 
     // do nothing. 
     Intent intent = new Intent(SocialPlugIns.this, MainActivity.class); 
     Log.i("Hello", "This is Coomon Log"); 
     startActivity(intent); 
      return; 
    } 
2

必須添加換取這成功地在所有設備上工作,我記3 & HTC還是回去吧,如果我不包括的回報!

@Override 
     public void onBackPressed() { 
      return; 
     } 
+0

這似乎很奇怪,因爲Java在這種情況下可以看到沒有返回和返回之間沒有區別,返回只是退出方法無所作爲。 – JohnyTex 2016-04-18 15:55:37

+0

只是發佈發生的事情,我沒有技術上的原因。 – Petro 2016-04-19 01:12:59

0

您必須重寫onBackPressed()函數。下面我給出一個方法:

@Override 
    public void onBackPressed() { 
     //make some alert for the user 
    }