Альтернативы использованию действия для каждой вкладки - PullRequest
0 голосов
/ 17 апреля 2011

Сценарий такой.В настоящее время я использую следующий код

TabSpec setContent = tabhost.newTabSpec("tab")
                .setIndicator("tabview")
                .setContent(new Intent(tabhost.getContext(), someActivity.class));

Но мне говорят, что каждая вкладка не должна быть связана с действием, и мы должны следовать коду примерно так:

TabSpec setContent = tabhost.newTabSpec("tab").setIndicator("tabView").setContent(R.id.layout)

РассмотримСценарий, в котором tab1 вызывает приложение камеры, tab2 анализирует XML, а tab3 выполняет некоторую другую работу по отображению.Как мне это решить?Потому что, как только вкладка изменилась, я должен вызвать эти методы.Как создать отдельное мероприятие и распределить на него все обязанности?

1 Ответ

0 голосов
/ 26 апреля 2011

Вы можете создать одно действие с вкладками, которые показывают только представления. Единственный улов в том, что представления должны быть определены внутри тега.

<FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
      <ListView 
        android:id="@+id/list1" 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:layout_weight="1"/>
      <ListView
          android:id="@+id/list2"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:layout_weight="1" /> 
</FrameLayout>

Затем, когда внутри вашего onCreate в вашем TabActivity:

TabHost tabs = getTabHost();
TabHost.TabSpec commentsTab = tabs.newTabSpec(TAB_TAG_1);
tabs.addTab(commentsTab.setContent(R.id.list1));

TabHost.TabSpec infoTab = tabs.newTabSpec(TAB_TAG_2);
tabs.addTab(infoTab.setContent(R.id.list2));

Обратите внимание, что я не указывал показатели ни для одной вкладки, в интересах пробела.

...