显示另一个对话框片段中的对话框片段

时间:2018-02-05 04:59:34

标签: android callback android-dialogfragment

我有一个名为DialogFragmentOne的对话框片段,我正在显示一个recyclerView。在项目点击该recyclerView调用该服务的后执行的另一个Web服务我试图显示另一个也包含recyclerview的dialogeFragment。但是在调用第二个对话框时出现了一些错误

调用第二个dialogeFragment表单服务是

 protected void onPostExecute(String s) {
        super.onPostExecute(s);
        if (dialog.isShowing()) {
            dialog.dismiss();
        }

        dialogeInterface.getModifierList(modifierList,hasModifier);
    } 

并在FirstDialogeFragment内部

@Override
    public void getModifierList(ArrayList<String> modifierList, boolean hasModifier) {

        if (hasModifier) {
            FragmentManager manager = getFragmentManager();
        ModifierListDIalogeFragment dialog = new ModifierListDIalogeFragment();
        Bundle bundle = new Bundle();
        bundle.putStringArrayList("modifierList", modifierList);
        dialog.setArguments(bundle);
        dialog.show(manager.beginTransaction(), "dialog");

        }
    }

我收到了错误

 java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v4.app.FragmentTransaction android.support.v4.app.FragmentManager.beginTransaction()' on a null object reference
                      at package.xxx.com.pos_system.fragments.ItemListDialogeFragment.getModifierList(ItemListDialogeFragment.java:140)

1 个答案:

答案 0 :(得分:0)

原因是上下文为空。使用活动上下文

if (hasModifier) {
    FragmentManager manager = getActivity().getFragmentManager() 
    ModifierListDIalogeFragment dialog = new ModifierListDIalogeFragment();
    Bundle bundle = new Bundle();
    bundle.putStringArrayList("modifierList", modifierList);
    dialog.setArguments(bundle);
    dialog.show(manager.beginTransaction(), "dialog");

    }