2013-05-20 12 views
7

アクティビティ内でOnBackPressed関数をオーバーライドしましたが、呼び出されていません。他の活動についてはうまくいきます。 は、ここに私の方法である:OnBackPressedは呼び出されていませんか?

@Override 
public void onBackPressed() { 
    Log.e("back",""+1); 
    UserPage.getstate().finish(); 
    Intent i=new Intent(CreateGroup.this,UserPage.class); 
    i.putExtra("title11","dd"); 
    startActivity(i); 
    finish(); 
} 

このメソッドは、呼び出されていない、とデフォルトOnBackPresssedは私が戻るボタンを押すたびに呼ばれています。

+3

「UserPage.getstate()。finish();」とは何ですか?やっている? –

+0

これはLog.e( "back"、 "" +1);ログで? –

+0

私はUserPageのstatic関数を使ってactivtyの状態を取得していますが、それを終了しています。 –

答えて

7

このコードを試してみてください

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back",""+1); 
     UserPage.getstate().finish(); 
     Intent i=new Intent(CreateGroup.this,UserPage.class); 
     i.putExtra("title11","dd"); 
     startActivity(i); 
     finish(); 
    } 
    return true; 
} 
+0

私はこれを試してみましたが、動作していません。 –

+0

私は、UserPageアクティビティでonStopメソッドとonRestartメソッドを使用しています。それはこれと何か関係がありますか? –

+0

アクティビティを変更する別のフォームでは、ログが表示されますか?または、戻るボタンも機能しませんか?あなたはアンドロイドバージョンbtwは何ですか? –

4

これを試しましたか? 、

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


     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
2
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back",""+1); 
     UserPage.getstate().finish(); 
     Intent i=new Intent(CreateGroup.this,UserPage.class); 
     i.putExtra("title11","dd"); 
     startActivity(i); 
     finish(); 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
6

は、同様の問題がありました。私の問題は、KEYCODE_BACK keydownイベントを隠すonKeyDown()のオーバーライドでした。

関連する問題