2011-04-15 46 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 
    }