Java 从DialogFragment打开片段

Java 从DialogFragment打开片段,java,android,android-fragments,android-dialogfragment,Java,Android,Android Fragments,Android Dialogfragment,我想从DialogFragment(catalogeHatDialog.java)中打开片段(MirrorFragment.java),并在片段中显示我在DialogFragment中选择的图像。 我试着使用这里的代码:以及关于stackoverflow的其他问题,但没有帮助。 图像未显示,并且没有错误。 我想我的错误是零碎的,但我不确定 CatalogeHatDialog.java: public class CatalogueHatDialog extends DialogFragment

我想从DialogFragment(catalogeHatDialog.java)中打开片段(MirrorFragment.java),并在片段中显示我在DialogFragment中选择的图像。 我试着使用这里的代码:以及关于stackoverflow的其他问题,但没有帮助。 图像未显示,并且没有错误。 我想我的错误是零碎的,但我不确定

CatalogeHatDialog.java:

public class CatalogueHatDialog extends DialogFragment {

    private static List<Hat> listHats;
    private GridView gvMain;

    public static CatalogueHatDialog newInstance(List<Hat> hats) {
        listHats = hats;
        Bundle args = new Bundle();
        CatalogueHatDialog catalogueHatDialog = new CatalogueHatDialog();
        catalogueHatDialog.setArguments(args);
        return catalogueHatDialog;
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.catalogue, null);
        gvMain = (GridView) v.findViewById(R.id.gvCatalogue);
        gvMain.setAdapter(new CatalogueGridAdapter(listHats, getActivity()));
        gvMain.setOnItemClickListener(new GridView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                dismiss();
                FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.replace(R.id.btnCapture, MirrorFragment.PlaceholderFragment.newInstance(position));
                ft.addToBackStack(null);
                ft.commit();
            }
        });
        getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);

        return v;
    }
}
public class CatalogueHatDialog extends DialogFragment {

    ...

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                dismiss();
                getTargetFragment().onActivityResult(position, Activity.RESULT_OK, getActivity().getIntent());


            }
        });
        ...
    }

}
我发现了错误。 下面是需要写的内容:

CatalogeHatDialog.java:

public class CatalogueHatDialog extends DialogFragment {

    private static List<Hat> listHats;
    private GridView gvMain;

    public static CatalogueHatDialog newInstance(List<Hat> hats) {
        listHats = hats;
        Bundle args = new Bundle();
        CatalogueHatDialog catalogueHatDialog = new CatalogueHatDialog();
        catalogueHatDialog.setArguments(args);
        return catalogueHatDialog;
    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.catalogue, null);
        gvMain = (GridView) v.findViewById(R.id.gvCatalogue);
        gvMain.setAdapter(new CatalogueGridAdapter(listHats, getActivity()));
        gvMain.setOnItemClickListener(new GridView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                dismiss();
                FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.replace(R.id.btnCapture, MirrorFragment.PlaceholderFragment.newInstance(position));
                ft.addToBackStack(null);
                ft.commit();
            }
        });
        getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);

        return v;
    }
}
public class CatalogueHatDialog extends DialogFragment {

    ...

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                dismiss();
                getTargetFragment().onActivityResult(position, Activity.RESULT_OK, getActivity().getIntent());


            }
        });
        ...
    }

}

你为什么要从职位号中减去1?