@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);   
     } 
} 
"nameField" in loadData() is null. At the same time if I do this inside 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
(i.e. after a delay) "name" is auto populated.
I'm using Android Annotations 3.3.2
I don't know the reason why it doesn't work but if you need it just works, the solution is pretty easy:
@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");
    }
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With