Продолжение. Начало материала в статье Разработка Андроид приложений – Tab Layout. Часть 1

5. Теперь откройте файл HelloTabWidget.java и дополните его классом TabActivity:

[code lang=»js»]
public class HelloTabWidget extends TabActivity {
[/code]

6. Используйте нижеуказанный код для метода onCreate() :

[code lang=»js»]
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Resusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab

// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, ArtistsActivity.class);

// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("artists").setIndicator("Artists",
res.getDrawable(R.drawable.ic_tab_artists))
.setContent(intent);
tabHost.addTab(spec);

// Do the same for the other tabs
intent = new Intent().setClass(this, AlbumsActivity.class);
spec = tabHost.newTabSpec("albums").setIndicator("Albums",
res.getDrawable(R.drawable.ic_tab_albums))
.setContent(intent);
tabHost.addTab(spec);

intent = new Intent().setClass(this, SongsActivity.class);
spec = tabHost.newTabSpec("songs").setIndicator("Songs",
res.getDrawable(R.drawable.ic_tab_songs))
.setContent(intent);
tabHost.addTab(spec);

tabHost.setCurrentTab(2);
}
[/code]

Данный код устанавливает для каждой вкладки свой текст и иконку, и присваивает каждой из них класс Activity.

Ссылка на TabHost в первую очередь записывается с помощью getTabHost(). Затем, для каждой из вкладок, создается элемент TabHost.TabSpec с целью определения опций вкладки. Метод newTabSpec(String) создает новый класс TabHost.TabSpec , который идентифицируется при помощи ярлыка строки.Для каждогоTabHost.TabSpec, вызывается setIndicator(CharSequence, Drawable) с тем, чтобы установитьтекст и иконку для вкладки. Также вызывается setContent(Intent) для уточнения класса Intent с целью открытия соответствующегоэлемента Activity. Затем каждый класс TabHost.TabSpec добавляется к элементу TabHost при помощи вызов метода addTab(TabHost.TabSpec).

В самом конце, параметр setCurrentTab(int) открывает вкладку с тем чтобы отразить ее по умолчанию, причем параметр уточнен индексной позицией вкладки.

Обратите внимание, что ни разу не упоминался объект TabWidget . Это произошло вследствие того, что класс TabWidget всегда должен оставаться «младшим» элементом TabHost, который вы чаще всего используете для обращения к вкладкам. Поэтому, когда вкладка добавляется к TabHost, она автоматически добавляется и к классу TabWidget.

7. Теперь откройте файл Android Manifest и добавьте тему NoTitleBar к ярлыку HelloTabWidget’s . Данное действие удалит название приложения, присвоенное ему по умолчанию, оставляя сверху место для вкладок, которые станут своеобразными заголовками. Ярлык должен выглядеть так:

[code lang=»js»]
<activity android:name=".HelloTabWidget" android:label="@string/app_name"
          android:theme="@android:style/Theme.NoTitleBar">
[/code]

8. Запустите приложение
Ваше приложение должно выглядеть примерно так (хотя иконки могут различаться):