无法让@ViewById在@EBean中工作

Que*_*ery 5 android android-annotations

  @EActivity(R.layout.data_layout) 
   public class MyActivity extendsActivity 
   {    
     @Bean    MyEbean bean;

      @AfterViews    
      public void setupView() 
      {
        bean.loadData("Test name");    
      } 
    }

   @EBean public class MyEbean 
   {    
     @RootContext    context;

      @ViewById(R.id.name_field)    
      TextView nameField;

     public void loadData(String name) 
     {
       nameField.setText(name);   
     } 
} 
Run Code Online (Sandbox Code Playgroud)

loadData()中的"nameField"为null.同时如果我在loadData()内执行此操作

nameField = (TextView)((Activity)context).findViewById(R.id.name_field);       it's all good. So the view isdefinitely there. Also if I call this method from a retrofit callback
Run Code Online (Sandbox Code Playgroud)

(即延迟后)"名称"自动填充.

我正在使用Android Annotations 3.3.2

Sla*_*ava 1

我不知道它不起作用的原因,但如果你需要它就可以工作,解决方案非常简单:

@EActivity(R.layout.data_layout) 
public class MyActivity extends Activity {    
    @Bean    MyEbean bean; 
}

@EBean
public class MyEbean {
    @ViewById Button previewButton;

    @AfterViews void init() {
        previewButton.setText("Blah");
    }
}
Run Code Online (Sandbox Code Playgroud)