Ich habe einige Probleme, um Aktivitäten mit AndroidAnnotations zu erstellen. Ich habe eine übergeordnete Aktivität namens TemplateActivity:Vererbung Aktivität mit 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));
}
}
Und in meinem zweiten Aktivität, ich will mainFrameLayout mit anoter Layout XML so füllen:
@EActivity
public class ChildActivity extends TemplateActivity
{
@Override
public void postInit()
{
super.postInit();
setMainView(R.layout.activity_child_one);
}
}
Als ich startActivity wollen, mein ChildActivity ist leer und postInit wurde nie aufgerufen. Kann mir jemand sagen, was los ist? Danke für den Fortschritt.
Zunächst nicht 'System.out.println (" postInit ");'. Verwenden Sie stattdessen 'Log.d (" DEBUG "," postInit ");'. Siehst du jetzt die Ausgabe in Logcat? Zweitens, ist 'setMainView (int)' eine Methode, die Sie erstellt haben? Kannst du den Code hier posten? – Vikram
Richtig für Log. Ja, ich habe setMainView erstellt, ich habe es in der Frage hinzugefügt. – ludriv
Ich bin nicht mit AndroidAnnotations vertraut. Aber sollte postInit() in ChildActivity nicht mit '@ AfterViews' versehen werden? – Vikram