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