Вы можете сделать все ваши действия производными от общего базового класса, который расширяет Activity, и добавить туда метод для построения меню. Используйте RelativeLayout в качестве основного контейнера, прикрепите горизонтальный LinearLayout внизу (layout_alignParentBottom = "true"), а затем выровняйте основной контейнер содержимого (независимо от типа макета, который вы хотите для конкретной операции) над ним. Используя android: weight для всего, что вы добавляете в свое меню (например, ImageButton), а затем android: weightSum для контейнера меню, они будут равномерно распределены. Итак, если у вас есть четыре кнопки ImageButton с android: weight = "1" и в LinearLayout, содержащем их, есть android: weightSum = "4", вы должны быть хорошими.
Итак, TabContentActivity может расширять Activity, а затем все ваши конкретные действия расширяют TabContentActivity. TabContentActivity имеет onCreate, который вызывает super.onCreate, а затем вызывает некоторый закрытый метод для построения меню. Затем, когда ваши производные классы вызывают super.onCreate в своем собственном onCreate, ваши «вкладки» создаются. У вас может быть Enum в TabContentActivity, представляющий каждую вкладку с локальной переменной этого типа Enum, чтобы указать, какая вкладка будет выделена.
Не слушайте людей, говорящих вам не делать этого таким образом. Если вы хотите именно этот пользовательский интерфейс, не ограничивайтесь окружающей средой, в которой вы работаете. Так же, как у вас есть ответы, говорящие, что это не «правильный способ сделать это в Android», у вас также есть два повышающих голоса.