我想创建一个@EBean
类,其中包含与显示和隐藏ProgressDialog
和DialogFragment
相关的所有功能。例如:我需要在ErrorDialogFragment
内显示Fragment
,因此以下代码中需要getChildFragmentManager()
:
ErrorDialogFragment.showDefaultDialog(getChildFragmentManager(),
"Device is disconected!");
有没有办法在getChildFragmentManager()
班级内调用@EBean
?
答案 0 :(得分:1)
@EBean
public class YourBean {
@RootContext
FragmentActivity activity;
public void showDialog() {
activity.getSupportFragmentManager(). ...
}
}
但是请确保只将此bean注入FragmentActivity
,否则Activity
本身不会被注入bean中。
编辑:您不能使用注释将FragmentManager
和Fragment
注入bean。你必须为它创建一个setter方法:
@EBean
public class YourBean {
private FragmentManager fragmentManager;
public void showDialog() {
ErrorDialogFragment.showDefaultDialog(fragmentManager,
"Device is disconected!");
}
public void setFragmentManager(FragmentManager fragmentManager) {
this.fragmentManager = fragmentManager;
}
}
在Fragment
:
@AfterInject
void afterInject() {
yourBean.setFragmentManager(getChildFragmentManager());
}