Представления не вводятся AndroidAnnotations в DialogFragment

Аннотации @ViewById не работают в моем DialogFragment.

я использую @EFragment(R.layout.mydialogfragment)

Я создаю фрагмент, делая

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

где init() мой пользовательский метод, который возвращает MyDialogFragment для цепочки.

Я не переопределил OnCreateDialogи я не переопределил onCreateViewи я не использую @After... аннотации Android Аннотации.

Я пытаюсь использовать внедренные представления в моем init() метод, но они нулевые.

2 ответа

Решение

Как только я закончил набирать вопрос, я понял, что случилось. Я предполагал, что представления будут введены ко времени build() вернулся, чтобы я мог использовать их в init() метод, но они не были. Исправление состояло в том, чтобы аннотировать другой метод с @AfterViews аннотации и сделать вид, связанный с инициализацией там.

Как я могу создать свой DialogFragment с помощью AA:

@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");
Другие вопросы по тегам