2011-04-15 11 views
12

私はスワップアプリケーションを作っています...私は戻るボタンを無効にしたいです。私はこのコードを使用して...そしてそれにで意図を通過した。..アンドロイドの戻るボタンを無効にする方法

@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)を参照してください。 –

答えて

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

はい..このメソッドは正常に動作しました。thanx – Sam

+0

ただオーバーライドを適用しました public void onBackPressed(){ //何もしません。 リターン; } とインテントを適用することで今私は私が欲しいページに切り替えることができます – Sam

+0

それは私にも役立ちますありがとう:) – Dimitri

6

BackPressed()を試しましたか?

@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

あなたすべてのデバイス上での作業をsucessfullyし、このためにリターンを追加する必要があり、私のノート3 & HTCはまだ戻って!

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

Javaはこの場合戻り値と戻り値の間に差異が見られないので、非常に奇妙に思えます。戻り値は何もしないメソッドを終了します – JohnyTex

+0

私は何が起こったのかを伝えるだけで、技術的な理由はありません。 – Petro

0

onBackPressed()の機能を無効にする必要があります。下に私は道を与えている:

@Override 
    public void onBackPressed() { 
     //make some alert for the user 
    } 
関連する問題