我试图让该对话框我已经使用DialogFragment.getDialog(扩展DialogFragment创建),但它返回null。
I am trying to get the Dialog I have created with an extended DialogFragment using DialogFragment.getDialog() but it returns null.
基本上我想改变从创建并显示DialogFragment的FragmentActivity布局的文本。
Basically I want to alter the text in the layout from the FragmentActivity which creates and shows the DialogFragment.
您正在呼叫 getDialog()
在DialogFragmen'ts生命周期为时尚早。
You're calling getDialog()
too early in the DialogFragmen'ts life cycle.
getDialog()
只需从DialogFragment返回私有变量 mDialog
。
getDialog()
simply returns the private variable mDialog
from the DialogFragment.
在DialogFragment被实例化 mDialog
为空,然后它被设置在 onCreateDialog
被激发内 getLayoutInflater(包savedInstanceState)
,所以你要叫 getDialog
在 onCreateDialog
。
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
.
例如,一些所谓的常用方法的顺序是的onCreate
, onCreateDialog
和 onCreateView
, ONSTART
。所以,你可以叫 getDialog
,并将它返回的东西在 onCreateView
或 ONSTART
,而不是在的onCreate
或 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
被称为called当片段是对用户可见 ,调整片段的布局在这一点上看起来不错....例如,使用设定的宽度和高度 getDialog ().getWindow()的setLayout(...,...);
不会使片段出现改变尺寸,但只是看上去有新设置的大小
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.
上一篇:什么"失败[INSTALL_FAILED_OLDER_SDK] QUOT;意味着Android的工作室?工作室、QUOT、INSTALL_FAILED_OLDER_SDK、Android
下一篇:为什么AndroidTestCase.getContext()。getApplicationContext()返回null?getContext、AndroidTestCase、null、getApp