Хорошо, я полагаю, вы хотите, чтобы одно и то же меню (main_menu.xml) отображалось во всех ваших представлениях.Правильно?.
Все ваши вызовы setContentView 2 раза для одного и того же действия ... так что в лучшем случае второй макет перезаписывает первый.
Итак, у меня есть идея: вы можете переопределитьметод setContentView GenericActivity и напишите что-то вроде этого:
Во-первых, вы должны зарезервировать пространство для представления активности Index в макете main_menu, например:
....
<LinearLayout android:id="@+id/childActivity" ...></LinearLayout>
<Button android:id="@+id/buttonNavigationFinder" ...></Button>
<Button android:id="@+id/buttonNavigationIndex" ...></Button>
<Button android:id="@+id/buttonNavigationStart" ...></Button>
....
Затемудалите свой onCreate или сделайте это:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
И наконец:
public void setContentView(int resource){
super.setContentView(R.layout.main_menu); // ---> Attention it's main_menu <---
final Button buttonFinder = (Button) findViewById(R.id.buttonNavigationFinder);
buttonFinder.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent IndexActivity = new Intent(GenericActivity.this, Finder.class);
GenericActivity.this.startActivity(IndexActivity);
}
});
final Button buttonIndex = (Button) findViewById(R.id.buttonNavigationIndex);
buttonIndex.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent IndexActivity = new Intent(GenericActivity.this, Index.class);
GenericActivity.this.startActivity(IndexActivity);
}
});
final Button buttonStart = (Button) findViewById(R.id.buttonNavigationStart);
buttonStart.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent IndexActivity = new Intent(GenericActivity.this, MainMenu.class);
GenericActivity.this.startActivity(IndexActivity);
}
});
//And now you have to fill the space for the child Activity with Index (or others) Activity view
LinearLayout childActivity = (LinearLayout) generalView.findViewById(R.id.childActivity);
View activityView = View.inflate(this,resource,null); //--> Now it's resource <--
childActivity.add(activityView);
}
Это идея, надеюсь, она вам поможет.