0
通知バーから通知を開いた後、人工バックスタックを作成しようとしています。通知を開いた後フラグメント人工バックスタンプ
ワークフロー:
- MainActivityが発射される開きます通知テントをクリックした後。
- MainActivityを開いた後、
if(getArguments != null)
をチェックします。 nullでない場合は、通知フラグメントを開き、通知IDを渡します。 - 通知の場合
if(id != -1)
通知フラグメントを開きます。
問題は、戻るボタンをクリックした後、MainActivityウィンドウに直進してNotificationsフラグメントをスキップすることです。私はそのような通知フラグメント開く
:
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
NotificationFragment notificationFragment = new NotificationFragment();
Bundle bundle = new Bundle();
bundle.putInt("id", getArguments().getInt("id"));
notificationFragment.setArguments(bundle);
ft.add(R.id.container, notificationFragment).addToBackStack(null).commit();
R.id.container
断片を示すSORでframeLayoutを使用している:
Fragment frag = new NotificationFragment();
frag.setArguments(bundle);
FragmentTransaction ft =getSupportFragmentManager().beginTransaction();
ft.add(R.id.container, NotificationsFragment.getInstance(null, id)).commit();
を私はこのような通知フラグメントが開きます。 私はサポートlibrraryを使用しています。
FragmentTransaction.replace()は、既存のフラグメントをすべて削除し、新しいフラグメントを追加します。そしてFragmentTransaction.add()はそれらを活動状態に加えます。
私が間違っていることを誰かに教えてください。正しい方法を教えてください。
Fragment frag = new NotificationFragment();
frag.setArguments(bundle);
FragmentTransaction ft =getSupportFragmentManager().beginTransaction();
ft.add(R.id.container, NotificationsFragment.getInstance(null, id)).addToBackStack(null).commit();
へ
私はこのような小さな事をどのように逃したのか知っています。ありがとう。私はこの質問を削除する必要があるかどうかわからないし、 –
質問を削除したい場合はうまくいきます。そうでなければ答えを受け入れてください。 –