Я согласен, что создание нового вида деятельности для этого было бы излишним. Один из способов решения этого вопроса - иметь GridView
, заполненный вашими «кнопками», и пользователь будет выбирать один из сетки, щелкнув по нему. Вопрос в том, где/как отображать эту сетку.
ViewFlipper - отличный вариант, на мой взгляд. То, как вы бы идти о нем поместить существующий макет внутри вид плавника, затем положить GridView минуте ViewFlipper после существующего макета:
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/flipper">
<LinearLayout ...>
<!-- this is where your main layout goes -->
</LinearLayout>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/player_select"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</ViewFlipper>
Тогда в вашей деятельности настроить адаптер для вашей точки зрения сетки и OnItemClickListener
- что-то делать, когда нажимается один элемент. Наконец, где-нибудь (либо в главном макете, либо в меню опций или в другом месте) вы можете отобразить это представление сетки. В коде обработчика для этого действия у вас есть что-то вроде
ViewFlipper flip = (ViewFlipper)flip.findViewById(R.id.flipper);
flip.showNext();
Это эффективно скроет ваш основной макет и покажет сетку вместо этого. И в конце вашего OnItemClickListener
вы будете иметь
ViewFlipper flip = (ViewFlipper)flip.findViewById(R.id.flipper);
flip.showPrevious();
Это скрыть вид сетки и перейти обратно в основной раскладке. Не стесняйтесь добавлять любую анимацию, которая вам нравится для перехода (например, анимация флип 3G выглядит особенно приятной).