Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Android Implementing Designs for Android Customizing the Action Bar Adding Icons to Tabs

Now switch to the ArtistActivity.java file. This also has tabs, but we are going to use icons instead of text. Set the i

it kips saying bummer dnt 4get to use"setIcon() method".......

MainActivity.java
import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class MainActivity extends FragmentActivity implements
        ActionBar.TabListener {

    // Some code has been omitted for brevity!

    public ActionBar mActionBar;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mActionBar = getActionBar();
        mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager());

        // Some code omitted for brevity...

        for (int i = 0; i < pagerAdapter.getCount(); i++) {
            ActionBar.Tab tab = mActionBar.newTab();
            tab.setTabListener(this);

            /*




             */
tab.setText(pagerAdapter.getPageTitle(i));
            mActionBar.addTab(tab);
        }
    }

    // These listener methods are intentionally blank
    @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { }

    @Override
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { }
}
ArtistActivity.java
import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class ArtistActivity extends FragmentActivity implements
        ActionBar.TabListener {

    // Some code has been omitted for brevity!

    public ActionBar mActionBar;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_artist);

        mActionBar = getActionBar();
        mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager());

        // Some code omitted for brevity...

        for (int i = 0; i < pagerAdapter.getCount(); i++) {
            ActionBar.Tab tab = mActionBar.newTab();
            tab.setTabListener(this);

            /*
             * Add your code here to set the icon!
             tab.setIcon(pagerAdapter.getIcon(i));
             */

            mActionBar.addTab(tab);
        }
    }

    // These listener methods are intentionally blank
    @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { }

    @Override
    public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { }

    @Override
    public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { }
}
PagerAdapter.java
import android.content.Context;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class PagerAdapter extends FragmentPagerAdapter {

    /*
     * Some code has been omitted for brevity!
     */    

    public PagerAdapter(FragmentManager fm) {
        // code omitted
    }

    @Override
    public int getCount() {
        return 3;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        switch (position) {
            case 0:
                return "Songs";
            case 1:
                return "Albums";
            case 2:
                return "Artists";
        }
        return null;
    }

    public int getIcon(int position) {
        switch (position) {
            case 0:
                return R.drawable.ic_tab_profile;
            case 1:
                return R.drawable.ic_tab_discography;
            case 2:
                return R.drawable.ic_tab_related_artists;
        }

        return R.drawable.ic_tab_profile;
    }
}

2 Answers

HI there,

You got through the first challenge which added text using the getPageTitle(int i) method.

In this one you follow the same concept but for icons, using the setIcon() method and the getIcon mthoed of the PagerAdapter. The line you add is very similar to the one you have already written - it just goes in the other activity and deals with icons:

tab.setIcon(pagerAdapter.getIcon(i));

I hope that helps.

Steve.

THANKS STEVE IT WORKED