0

バックスタックの最後のフラグメントに戻りたいので、戻るボタンをスタックにポップバックさせます。私はこれをすべきですか?もしそうなら、onBackPressed()またはonKeyDown()をオーバーライドする必要がありますか?

@Override
        public void onBackPressed()
            {
            Intent intent = new Intent(this,ABC.class);
            startActivity(intent);
            }

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK ) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

何らかの理由でフラグメントがバックスタックに適切に追加されていません

これを使用して前のフラグメントに戻ろうとしていますが、順序がおかしいです。注文を適切にするために正確に何をすべきですか?

@Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft){
        if(teamsFrag !=null)
        {

            if(manage.getBackStackEntryCount() > 0)
                manage.popBackStack(manage.getBackStackEntryAt(manage.getBackStackEntryCount()-1).getName(), FragmentManager.POP_BACK_STACK_INCLUSIVE);

            //ft.detach(dataFrag);
        }
4

2 に答える 2

2

短い答え?いいえ。

長い答え?あなたが尋ねなければならないなら、いいえ。

フラグメントマネージャを使用してフラグメントを設定し、戻るボタンが希望どおりに動作するようにする必要があります。スタックを正しく実装する代わりに、戻るボタンをオーバーライドしないでください。

于 2012-12-28T22:30:26.523 に答える
0

バックスタックの最後のフラグメントに戻りたいので、戻るボタンをスタックにポップバックさせます。

FragmentTransaction#addToBackStack()これは、 FragmentManagerで新しいフラグメントを追加するときに使用する場合のデフォルトの動作です。

于 2012-12-28T22:51:26.067 に答える