Ответ 1
Да, вы бы создали ActivityGroup, который будет контейнером других ваших действий. Когда пользователь нажимает на одну из кнопок, вы получаете ссылку на LocalActivityManager и используете его для запуска и встраиваете внутреннюю активность. Что-то вроде этого:
LocalActivityManager mgr = getLocalActivityManager();
Intent i = new Intent(this, SomeActivity.class);
Window w = mgr.startActivity("unique_per_activity_string", i);
View wd = w != null ? w.getDecorView() : null;
if(wd != null) {
mSomeContainer.addView(wd);
}
Примечание. Использование этого метода может быть довольно сложным, поскольку, если фокус не прав, нажатие аппаратных кнопок (например, кнопка меню) приведет только к событиям в ActivityGroup, а не к внутренней активности. Вы должны найти способ сфокусировать внутреннюю активность после добавления ее в представление контейнера, после чего четное будет происходить во внутренней активности и распространяется на активность контейнера.
Это можно сделать, я сделал это... и он работает. Это немного сложнее, чем я думаю, это должно быть.
В любом случае, я получил большую часть этой информации, посмотрев код TabHost, который можно найти здесь