Android 从通知中的childfragment打开对话框片段

Android 从通知中的childfragment打开对话框片段,android,android-fragments,push-notification,firebase-cloud-messaging,child-fragment,Android,Android Fragments,Push Notification,Firebase Cloud Messaging,Child Fragment,我有一个MainActivity,它有一个viewpager,其中包含主机片段(可以使用子片段管理器包含其他片段)。我试图实现的是在单击通知上的操作时从一个子片段启动一个对话框片段。我正在使用FCM,并且通知的目的是正确的,但是当我尝试添加子片段时,我得到的片段未附加到活动,而我尝试获得子片段管理器 @Override protected void onCreate(Bundle savedInstanceState) { addFrags();//adding frag

我有一个MainActivity,它有一个viewpager,其中包含主机片段(可以使用子片段管理器包含其他片段)。我试图实现的是在单击通知上的操作时从一个子片段启动一个对话框片段。我正在使用FCM,并且通知的目的是正确的,但是当我尝试添加子片段时,我得到的片段未附加到活动,而我尝试获得子片段管理器

@Override
    protected void onCreate(Bundle savedInstanceState) {
        addFrags();//adding fragments to the viewpager
        Bundle bundle = getIntent().getExtras();
        if (bundle.containsKey(ARG_ACTION_ID)) {
            mAction = (Action) bundle.getSerializable(ARG_ACTION_ID);
        }
}

@Override
    protected void onStart() {
        super.onStart();
        switch (mAction) {
            case EDIT_TFR: {
                mViewPager.setCurrentItem(2);//this much is happening, it will go to the 3rd page of viewpager if i didnt do the rest.
                onFragmentInteraction(id);
                break;
            }
        }
}
// this is an interface i use to interact with the acticity from my child fragment, which is also the one i am calling from onstart
@Override
public void onFragmentInteraction(String id) {
    HostFragment hostFragment = (HostFragment) mPagerAdapter.getItem(2);
    Fragment contentfragment = NewFrag.newInstance(id);
    hostFragment.addFragment(contentFragment, true);
}
这是HostFragment中的addFragent方法

public void addFragment(Fragment fragment, boolean addToBackstack) {
    FragmentManager fm = this.getChildFragmentManager(); //this is were i am getting the error
    FragmentTransaction fragmentTransaction = fm.beginTransaction();
    fragmentTransaction.add(id.hosted_fragment, fragment);
    if (addToBackstack) {
        fragmentTransaction.addToBackStack((String)null);
    }

    fragmentTransaction.commit();
    fm.executePendingTransactions();
}
我计划在NewFrag中调用一个公共方法,它将打开dialogfrag

我知道这个片段现在可能还没贴上。请让我知道我如何才能做到这一点