t.gakk
t.gakk

Reputation: 77

Pass some data with viewpager.setCurrentItem(position)

I want to passes some value inside button click with viewpager tab fragment changing. I have two question.

  1. what is the best way to passes data?
  2. If I use static data what will be problem? such like:

    public static string abc=""
    
    case R.id.IVActionMore:   
    ViewPager viewPager = (ViewPager) getActivity().findViewById(R.id.tabs_viewpager);
    viewPager.setCurrentItem(3);
    //abc = "action";
    break;
    

Upvotes: 5

Views: 850

Answers (2)

Md Tariqul Islam
Md Tariqul Islam

Reputation: 2804

You can use shared-preference to set and get the data. using static is not a great idea. check the link

https://stackoverflow.com/a/23024962/4549220

Upvotes: 1

IntelliJ Amiya
IntelliJ Amiya

Reputation: 75788

  1. Use addOnPageChangeListener

void addOnPageChangeListener (ViewPager.OnPageChangeListener listener) Add a listener that will be invoked whenever the page changes or is incrementally scrolled.

How ?

 viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int position, float 
                     positionOffset, int positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int position) 
    {

     if(position == 3)
     {
           // DO your work
     }

    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }
});

OnClick

 buttonOBJ.setOnClickListener(new OnClickListener()
   {
             @Override
             public void onClick(View v)
             {
                viewPager.setCurrentItem(viewPager.getCurrentItem() + 1, true);
             } 
   }); 

Upvotes: 1

Related Questions