Pass some data using viewpager.setCurrentItem (position)

I want to convey some value inside the click button with changing the fragment of the viewpager tab. I have two questions.

  • What is the best way to transfer data?
  • If I use static data, what will be the problem? such as:

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

You can use general preferences to set and receive data. using statics is not a great idea. check link

fooobar.com/questions/40589 / ...

+1
source

void addOnPageChangeListener (ViewPager.OnPageChangeListener listener) Add a listener that will be called whenever the page changes or scrolls stepwise.

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); } }); 
+1
source

Source: https://habr.com/ru/post/1271556/


All Articles