Android Fragment ハンドルの戻るボタンの押下 [重複] 質問する

Android Fragment ハンドルの戻るボタンの押下 [重複] 質問する

私の活動にはいくつかの断片があります

[1], [2], [3], [4], [5], [6]

また、[戻る]ボタンが押されたときに、現在アクティブなフラグメントが [2] の場合は [2] から [1] に戻る必要があります。それ以外の場合は何もしません。

それを実行するためのベストプラクティスは何ですか?

編集:アプリケーションは[3]から[2]に戻ってはいけません...[6]

ベストアンサー1

フラグメント間を遷移する場合は、addToBackStack()の一部として以下を呼び出しますFragmentTransaction

FragmentTransaction tx = fragmentManager.beginTransation();
tx.replace( R.id.fragment, new MyFragment() ).addToBackStack( "tag" ).commit();

より詳細な制御が必要な場合 (つまり、一部のフラグメントが表示されている場合に戻るキーを抑制したい場合)、OnKeyListenerフラグメントの親ビューで を設定できます。

//You need to add the following line for this solution to work; thanks skayred
fragment.getView().setFocusableInTouchMode(true);
fragment.getView().requestFocus();
fragment.getView().setOnKeyListener( new OnKeyListener()
{
    @Override
    public boolean onKey( View v, int keyCode, KeyEvent event )
    {
        if( keyCode == KeyEvent.KEYCODE_BACK )
        {
            return true;
        }
        return false;
    }
} );

おすすめ記事