0

こんにちは私は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(); 
} 

です

私は、フラグメントが作成します私をリンクして見てください。

ありがとうございました

答えて

0

私は解決しますここのような活動に似た私の問題。

https://stackoverflow.com/a/18234691/8250313

/* Start Activity */ public void onClick(View v) { 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setClassName("com.thinoo.ActivityTest", "com.thinoo.ActivityTest.NewActivity"); 
    startActivityForResult(intent,90); } /* Called when the second activity's finished */ protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    switch(requestCode) { 
    case 90: 
     if (resultCode == RESULT_OK) { 
      Bundle res = data.getExtras(); 
      String result = res.getString("param_result"); 
      Log.d("FIRST", "result:"+result); 
     } 
     break; 
    } } 

private void finishWithResult() { 
    Bundle conData = new Bundle(); 
    conData.putString("param_result", "Thanks Thanks"); 
    Intent intent = new Intent(); 
    intent.putExtras(conData); 
    setResult(RESULT_OK, intent); 
    finish(); } 
関連する問題