I am trying to get the Dialog I have created with an extended DialogFragment using DialogFragment.getDialog() but it returns null.
Basically I want to alter the text in the layout from the FragmentActivity which creates and shows the DialogFragment.
You're calling getDialog()
too early in the DialogFragmen'ts life cycle.
getDialog()
simply returns the private variable mDialog
from the DialogFragment.
When a DialogFragment is instantiated mDialog
is null, and then it gets set when onCreateDialog
is fired inside getLayoutInflater(Bundle savedInstanceState)
, so you have to call getDialog
after onCreateDialog
.
For example, the order of some common methods called is onCreate
, onCreateDialog
, and onCreateView
, onStart
. So, you can call getDialog
and have it return something in onCreateView
or onStart
, but not in onCreate
or onCreateDialog
.
Eventhough onStart
is called called when the Fragment is visible to the user
, adjusting the layout of the fragment at that point looks fine.... for example setting the width and height using getDialog().getWindow().setLayout(..., ...);
doesn't make the fragment appear to change size, but just appears to have the newly set size.