DialogFragment 中的 AndroidAnnotations 不会注入视图
Views don't get injected by AndroidAnnotations in DialogFragment
@ViewById 注释在我的 DialogFragment 中不起作用。
我用@EFragment(R.layout.mydialogfragment)
我通过
创建片段
MyDialogFragment_.builder()
.build()
.init(someObject, new ClickListener() {...})
.show(getFragmentManager(), "myDialog");
其中 init()
是我的自定义方法,returns MyDialogFragment
用于链接。
我没有覆盖 OnCreateDialog
,也没有覆盖 onCreateView
,我也没有使用 AndroidAnnotations 的任何 @After...
注释。
我试图在我的 init()
方法中使用注入的视图,但它们是空的。
当我完成问题输入时,我意识到出了什么问题。我假设视图会在 build()
返回时注入,这样我就可以在 init()
方法中使用它们,但事实并非如此。解决方法是用 @AfterViews
注释注释另一个方法,并在那里进行视图相关的初始化。
如何使用 AA 创建我的 DialogFragment:
@EFragment(R.layout.my_fragment_layout) public class MyDialogFragment extends DialogFragment {
@ViewById TextView myTextView;
@ViewById Button myButton;
public static MyDialogFragment_ newInstance() {
MyDialogFragment_ f = new MyDialogFragment_();
return f;
}
@AfterViews void init() {
// something
}
}
如何开始?
FragmentTransaction ft = fragmentManager.beginTransaction();
DialogFragment newFragment = MyDialogFragment.newInstance();
newFragment.show(getSupportFragmentManager(), "dialog");
@ViewById 注释在我的 DialogFragment 中不起作用。
我用@EFragment(R.layout.mydialogfragment)
我通过
创建片段MyDialogFragment_.builder()
.build()
.init(someObject, new ClickListener() {...})
.show(getFragmentManager(), "myDialog");
其中 init()
是我的自定义方法,returns MyDialogFragment
用于链接。
我没有覆盖 OnCreateDialog
,也没有覆盖 onCreateView
,我也没有使用 AndroidAnnotations 的任何 @After...
注释。
我试图在我的 init()
方法中使用注入的视图,但它们是空的。
当我完成问题输入时,我意识到出了什么问题。我假设视图会在 build()
返回时注入,这样我就可以在 init()
方法中使用它们,但事实并非如此。解决方法是用 @AfterViews
注释注释另一个方法,并在那里进行视图相关的初始化。
如何使用 AA 创建我的 DialogFragment:
@EFragment(R.layout.my_fragment_layout) public class MyDialogFragment extends DialogFragment {
@ViewById TextView myTextView;
@ViewById Button myButton;
public static MyDialogFragment_ newInstance() {
MyDialogFragment_ f = new MyDialogFragment_();
return f;
}
@AfterViews void init() {
// something
}
}
如何开始?
FragmentTransaction ft = fragmentManager.beginTransaction();
DialogFragment newFragment = MyDialogFragment.newInstance();
newFragment.show(getSupportFragmentManager(), "dialog");