4

アクティビティで onBackPressed メソッドをオーバーライドしています:

 @Override
public void onBackPressed() {
    super.onBackPressed();
}

そして、次のようにフラグメントを追加しています。

    fragmentManager.beginTransaction()
                .add(R.id.frame_container, myFragment).addToBackStack("").commit();

問題は、アクティビティで onBackPressed が呼び出されないことです。しかし、それを次のように変更すると:

replace(R.id.frame_container, myFragment).addToBackStack("").commit();

期待どおりに呼び出されます。フラグメントを追加する必要があります。この問題を解決するには?

4

2 に答える 2

2

これを試して、

以下のメソッドをオーバーライドします。

@Override
public boolean onKeyDown(int code, KeyEvent e) {
    Log.e(LOG_TAG, "down = " + code);
    if(code == KeyEvent.KEYCODE_BACK){
        return true;
    }else{
    return super.onKeyDown(code, e);
    }
}
于 2015-09-19T13:18:11.953 に答える