こんにちは私はDialogFragmentにフラグメントをコミット
public class CustomCalendarDialog extends DialogFragment {
public CustomCalendarDialog() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NO_TITLE, android.R.style.Theme_Holo);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_custom_calendar, container);
FrameLayout frame = view.findViewById(R.id.Dialogcontainer1);
int id = frame.getId();
FragmentManager fragmentManager = ((FragmentActivity) getActivity()).getSupportFragmentManager();
Fragment customCalendarFragment = CustomCalendarFragment.newInstance();
fragmentManager.beginTransaction().replace(id, customCalendarFragment);
return view;
}
}
私はシンプルdialogFragmentを持ってDialogFragment にフラグメントをコミットに問題が...持っており、この線での活動にコミットすることができますフラグメントを持って
Fragment customCalendarFragment = CustomCalendarFragment.newInstance();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(frameLayout.getId(), customCalendarFragment).commit();
アクティビティプログラムのこの行はうまく動作します。
今、このフラグメントをダイアログ/ダイアログフラグメントに置き換える必要があります。
は私が
View view = inflater.inflate(R.layout.fragment_custom_calendar, container);
変数コンテナは、それはありません大丈夫かどうかは知りませんnullのダイアログ
にレイアウトfragment_custom_calendar.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0000ff">
<FrameLayout
android:id="@+id/Dialogcontainer1"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
</FrameLayout>
ふくらませるのレイアウトを持っています。それが画面で、大丈夫だ
ビューはブルーレイアウトを見ることができます(#0000FF)しかし、私は私のフラグメント(カスタムカレンダーを)見たい
プログラムは、上のクラッシュしない
FrameLayout frame = view.findViewById(R.id.Dialogcontainer1);
int id = frame.getId();
FragmentManager fragmentManager = ((FragmentActivity) getActivity()).getSupportFragmentManager();
Fragment customCalendarFragment = CustomCalendarFragment.newInstance();
fragmentManager.beginTransaction().replace(id, customCalendarFragment);
フレームがヌルIDではありません行をコミットnullではありませんcustomCalendarFragmentはnullではありませんが、私はそれを見ることができません。 MainActivityから私の呼び出し]ダイアログが
CustomCalendarDialog cdd = new CustomCalendarDialog();
cdd.show(getFragmentManager(), "TAG");
私はダイアログで、このフラグメントが必要:(フラグメントをコミットする場合、私は知らないそうであれば、通常のダイアログでかのう
public static Fragment newInstance() {
return (Fragment) new CustomCalendarFragment();
}
です
:私は、フラグメントが作成します私をリンクして見てください。
ありがとうございました