Ho qualche problema a sviluppare attività con AndroidAnnotations. Ho un genitore attività di nome TemplateActivity:Attività di ereditarietà con AndroidAnnotations
@EActivity(R.layout.activity_template)
@NoTitle
public class TemplateActivity extends Activity
{
// some views
// ...
@ViewById(R.id.main_framelayout)
FrameLayout mainFrameLayout;
@AfterViews
public void postInit()
{
Log.d("DEBUG", "postInit"); // never called, strange...
}
public void setMainView(int layoutResID)
{
mainFrameLayout.addView(LayoutInflater.from(this).inflate(layoutResID, null));
}
}
E nella mia seconda attività, voglio riempire mainFrameLayout con anoter XML di layout simile:
@EActivity
public class ChildActivity extends TemplateActivity
{
@Override
public void postInit()
{
super.postInit();
setMainView(R.layout.activity_child_one);
}
}
Quando voglio startActivity, il mio ChildActivity è vuoto e postInit non è mai stato chiamato. Qualcuno può dirmi cosa c'è che non va? Grazie in anticipo.
Prima di tutto, non utilizzare 'System.out.println (" postInit ");'. Usa 'Log.d (" DEBUG "," postInit ");' invece. Adesso vedi l'output in Logcat? Secondo, 'setMainView (int)' è un metodo che hai creato? Puoi pubblicare il suo codice qui? – Vikram
Right for Log. Sì, ho creato setMainView, l'ho aggiunto alla domanda. – ludriv
Non ho familiarità con 'AndroidAnnotations'. Ma, non dovrebbe postInit() in ChildActivity essere annotato con '@ AfterViews'? – Vikram