Search code examples
androidonclicklistenerandroid-tabs

SlidingTabLayout getCurrentItem() on onClick() drawer menu item


How to change current tab on HomeActivity when item on drawer menu is clicked?

View created on SlidingTabsBasicFragment.java. It called on HomeActivity.java DrawerMenu in HomeActivity, so i need change current tab on HomeActivity when item on drawer menu is clicked.

PS: Sorry for my English :)

HomeActivity.java

...
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(com.tagwishes.fc.R.layout.activity_home);




    if (savedInstanceState == null) {
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        SlidingTabsBasicFragment fragment = new SlidingTabsBasicFragment();

        transaction.replace(R.id.sample_content_fragment, fragment);
        transaction.commit();

    }

...

i need something this:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(com.tagwishes.fc.R.layout.activity_home);




    if (savedInstanceState == null) {
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        SlidingTabsBasicFragment fragment = new SlidingTabsBasicFragment();

        transaction.replace(R.id.sample_content_fragment, fragment);
        transaction.commit();

    }

    btn = (Button) findViewById(R.id.btn);

    OnClickListener oclBtn = new OnClickListener() {
        @Override
        public void onClick(View v) {

            //HOW TO GET mViewPager
            mViewPager.setCurrentItem(3);// 3 FOR EXAMPLE

        }
    };


    btn.setOnClickListener(oclBtn);

mViewPager called in SlidingTabsBasicFragment.class

    @Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    // BEGIN_INCLUDE (setup_viewpager)
    // Get the ViewPager and set it's PagerAdapter so that it can display items
    mViewPager = (ViewPager) view.findViewById(R.id.viewpager);
    mViewPager.setAdapter(new SamplePagerAdapter());
    // END_INCLUDE (setup_viewpager)

    // BEGIN_INCLUDE (setup_slidingtablayout)
    // Give the SlidingTabLayout the ViewPager, this must be done AFTER the ViewPager has had
    // it's PagerAdapter set.
    mSlidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs);
    mSlidingTabLayout.setCustomTabView(R.layout.custom_tab, 0);



    //mSlidingTabLayout.setSelectedIndicatorColors(R.color.bg_register);
    mSlidingTabLayout.setViewPager(mViewPager);
    // END_INCLUDE (setup_slidingtablayout)




}

Solution

  • i solve my problem:

    so i copy SlidingTabsBasicFragment.class OnViewCreated() code to HomeActivity.class and remove SlidingTabsBasicFragment.class. Final HomeActivity.class

        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(com.tagwishes.fc.R.layout.activity_home);
    
    
    
        mViewPager = (ViewPager) findViewById(R.id.viewpager);
        mViewPager.setAdapter(new SamplePagerAdapter());
    
        // END_INCLUDE (setup_viewpager)
    
        // BEGIN_INCLUDE (setup_slidingtablayout)
        // Give the SlidingTabLayout the ViewPager, this must be done AFTER the ViewPager has had
        // it's PagerAdapter set.
        mSlidingTabLayout = (SlidingTabLayout) findViewById(R.id.sliding_tabs);
        mSlidingTabLayout.setCustomTabView(R.layout.custom_tab, 0);
    
    
    
        //mSlidingTabLayout.setSelectedIndicatorColors(R.color.bg_register);
        mSlidingTabLayout.setViewPager(mViewPager);
        // END_INCLUDE (setup_slidingtablayout)
    

    and now i can implement oncliklistener and change selected tab with mViewPager.setCurrentItem(position);