使用 AndroidAnnotation 在 EBean class 中调用 getChildFragmentManager
Call getChildFragmentManager inside EBean class using AndroidAnnotation
我想创建一个 @EBean
class,其中包含与显示和隐藏 ProgressDialog
和 DialogFragment
相关的所有功能。例如:我需要在 Fragment
中显示 ErrorDialogFragment
,因此下面的代码需要 getChildFragmentManager()
:
ErrorDialogFragment.showDefaultDialog(getChildFragmentManager(),
"Device is disconected!");
有没有办法在 @EBean
class 中调用 getChildFragmentManager()
?
@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());
}
我想创建一个 @EBean
class,其中包含与显示和隐藏 ProgressDialog
和 DialogFragment
相关的所有功能。例如:我需要在 Fragment
中显示 ErrorDialogFragment
,因此下面的代码需要 getChildFragmentManager()
:
ErrorDialogFragment.showDefaultDialog(getChildFragmentManager(),
"Device is disconected!");
有没有办法在 @EBean
class 中调用 getChildFragmentManager()
?
@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());
}