Вкладки+ViewPager+Значки фрагментов

У меня примерно 3 вкладки, у каждой вкладки есть значок.
Я хочу изменить значок, когда пользователь меняет вкладку.
Пытался поставить условия в getPageTitle, но это не работает.
Может быть, getPageTitle запускается только один раз . Вот мой код.

public class searchView extends ActionBarActivity {
    private Toolbar toolbar;
    private ViewPager mPager;
    private SlidingTabLayout mTabs;
    public static final int HISTORY = 0;
    public static final int FAVORITES = 1;
    public static final int CATEGORY = 2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search_view);
        toolbar = (Toolbar) findViewById(R.id.app_bar);
        setSupportActionBar(toolbar);

        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        mPager = (ViewPager) findViewById(R.id.pager);
        mPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
        mPager.setCurrentItem(Global.setCurrentItem);
        mPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                if (position == 0) {
                    getSupportActionBar().setTitle("History");
                } else if (position == 1) {
                    getSupportActionBar().setTitle("Favorites");
                } else {
                    getSupportActionBar().setTitle("Category");
                }
            }

            @Override
            public void onPageSelected(int position) {
            }

            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });


        mTabs = (SlidingTabLayout) findViewById(R.id.tabs);
        mTabs.setCustomTabView(R.layout.custom_tab_view, R.id.tabText);
        mTabs.setDistributeEvenly(true);

        mTabs.setBackgroundColor(getResources().getColor(R.color.primaryColor));
        mTabs.setSelectedIndicatorColors(getResources().getColor(R.color.white));
        mTabs.setViewPager(mPager);

    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_search, menu);
        return true;
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                NavUtils.navigateUpFromSameTask(this);
                return true;
            case R.id.actSearch:
                GlobalVar.getActivity = 3;
                startActivity(new Intent(this, searchingView.class));
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }


    class MyPagerAdapter extends FragmentPagerAdapter {
        int icons[] = {R.drawable.ic_history, R.drawable.ic_favorite_white, R.drawable.ic_category};
        public MyPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            Fragment myFragment = null;
            switch (position) {
                case HISTORY:
                    myFragment = FragmentHistory.newInstance("", "");
                    break;
                case FAVORITES:
                    myFragment = FragmentFavorites.newInstance("", "");
                    break;
                case CATEGORY:
                    myFragment = FragmentCategory.newInstance("", "");
                    break;
            }
            return myFragment;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            Drawable drawable = getResources().getDrawable(icons[position]);
            drawable.setBounds(0, 0, 72, 72);
            ImageSpan imageSpan = new ImageSpan(drawable);
            SpannableString spannableString = new SpannableString(" ");
            spannableString.setSpan(imageSpan, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            return spannableString;
        }

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

person Charles Galvez    schedule 10.11.2015    source источник
comment
Возможный дубликат Обновление значков вкладки Android   -  person lewkka    schedule 10.11.2015
comment
Проголосовать против? Я ничего не голосовал.   -  person Charles Galvez    schedule 10.11.2015
comment
кто может ответить на мой вопрос? :'(   -  person Charles Galvez    schedule 10.11.2015