DialogFragment中的AndroidAnnotations不会注入视图

时间:2016-08-19 09:53:21

标签: android android-annotations

@ViewById注释在我的DialogFragment中无效。

我使用@EFragment(R.layout.mydialogfragment)

我通过

创建片段

MyDialogFragment_.builder() .build() .init(someObject, new ClickListener() {...}) .show(getFragmentManager(), "myDialog");

其中init()是我的自定义方法,它返回MyDialogFragment进行链接。

我没有覆盖OnCreateDialog,也没有覆盖onCreateView,而且我没有使用AndroidAnnotations的任何@After...注释。

我正在尝试在init()方法中使用注入的视图,但它们都是null。

2 个答案:

答案 0 :(得分:3)

正当我完成输入问题时,我意识到出了什么问题。我假设视图会在build()返回时被注入,所以我可以在init()方法中使用它们,但它们不是。{修复是使用@AfterViews注释注释另一个方法并在那里进行与视图相关的初始化。

答案 1 :(得分:0)

如何使用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");