2015-09-29 19 views
5
@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); 
    } 
} 

"adField" içinde loadData() işlevi bulunamıyor. Ben LoadData içinde bu yaparsak aynı zamanda() 'de @ViewById öğesinin, içinde bir @EBean

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 

(yani bir gecikme sonrasında) "adı" auto olarak doldurulur.

Ben Android Ek Açıklamalar kullanıyorum 3.3.2

cevap

1

çalışmıyor neden nedenini bilmiyorum ama çok işe yarıyor gerekiyorsa, çözüm oldukça kolaydır:

@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"); 
    } 
} 
0
yukarıdaki cevapla

-Agree önemli nokta olduğunu

....

@AfterViews void init() { 
    previewButton.setText("Blah"); 
} 
  • bu, görünümlerin getirildiğini gösterir, böylece boş gösterici olmaz.
İlgili konular