web-dev-qa-db-ja.com

onKeyDown()またはonBackPressed()

アプリケーションに戻るボタン機能を実装したい。アプリケーションで、真ん中の戻るボタンをクリックしているときはいつでも、私のコントロールは直接ログインページに行くので、onKeyDown()またはonBackPressed()メソッドをオーバーライドする場所を誰かに教えてもらえますか?

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        Log.e("back key pressed","Back key pressed");
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

onCreateの内側とonCreateの外側も書いているので、うまくいきません......

15
user1249134

Android 2.0以前の電話をサポートするかどうかによって異なります。 onBackPressed()メソッドがAndroid 2.0(API 5)に追加されました。

詳細については、Android開発者ブログ)のこの投稿をご覧ください。

http://Android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

10
zostay

以下のコードを参照してください。 onCreateの外側に書き込む

  @Override  
    public boolean onKeyDown(int keyCode, KeyEvent event)  
  {  
         //replaces the default 'Back' button action  
         if(keyCode==KeyEvent.KEYCODE_BACK)  
         {  

                Intent intent = new Intent(currentActivity.this, RequiredActivity.class);
                finish();
                startActivity(intent); 

         }  
         return true;  
   }  
4

はい、その戻るボタンを上書きできます

public void onBackPressed() {

     Intent start = new Intent(currentclassname.this,which activity u want.class);
        startActivity(start);
        finishActivity(0);
        }

これにより、任意のアクティビティに移動できます。これは非常に簡単でシンプルな方法です

3
Naresh Sharma

履歴スタックからログインアクティビティを削除することについて懸念がある場合。

Finish();を実行します。ログインアクティビティで他のアクティビティを開始したとき

1
Sai mukesh