Issues with Android TabHost Example

I spent the last hour or so going through that tutorial. Here’s the problems and fixes for it that I dealt with:

Step 2: When creating your activities, if you do not create them through the manifest then you’ll need to add them to the manifest manually.

Add these lines to AndroidManifest.xml:

  <activity android:name=".AlbumsActivity"
                  android:label="@string/app_name"
                  android:theme="@android:style/Theme.NoTitleBar">
        </activity>
  <activity android:name=".ArtistsActivity"
                  android:label="@string/app_name"
                  android:theme="@android:style/Theme.NoTitleBar">
        </activity>
          <activity android:name=".SongsActivity"
                  android:label="@string/app_name"
                  android:theme="@android:style/Theme.NoTitleBar">
        </activity>

Step 3: You are only instructed to create the ic_tab_artists.xml file. You’ll need to create one for ic_tab_songs.xml and ic_tab_albums.xml as well. You can just duplicate the ic_tab_artists.xml (or change the HelloTabView.java tab specs to use the artists.xml file for each tab).

Step 4: The third to last line under /res/layout/main has a typo (a ; instead of a 🙂

      android:padding="5dp" />
    </LinearLayout>
</TabHost>

Step 6: There is a typo that uses calls mTabHost instead of tabHost. Change it.

As already cited the getIntent() function on the last line isn’t appropriate. I just call the tab based on it’s id. eg:

tabHost.setCurrentTabByTag("albums");

Leave a Comment