9

ユーザーの操作に基づいFragmentsて動的に追加します。Activity戻るキーを押すと、フラグメントがポップされます。ただし、最初にスタックに追加されたフラグメントの戻るキーを押すと、「アクティビティ」に空のレイアウトが表示されます。この時点で Activity が「finish()」を呼び出して消えるようにしたいと思います。私はもう試した:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    super.onKeyDown(keyCode, event);
    if(keyCode == KeyEvent.KEYCODE_BACK){
        if(getFragmentManager().getBackStackEntryCount()==0){
            finish();
            return true;
        }
    }
    return true;
}

しかし、これは戻るキーの機能をブロックする効果があります。正しい方向へのポインタは高く評価されます。

4

2 に答える 2

7

最初のフラグメントをどこに追加していますか? そのトランザクションをバックスタックに追加しないでください。それはあなたが望むように動作するはずです。

于 2012-10-24T03:54:41.403 に答える
5

return true;2 番目をに変更してreturn false;、キープレスを処理しなかったことを示します。これにより、バック スタックが空の場合はアクティビティが閉じられ、それ以外の場合はそのままになります。

于 2012-10-24T03:51:54.900 に答える