使用viewpager.setCurrentItem(position)

时间:2017-09-06 06:05:44

标签: java android android-viewpager

我希望在按钮点击内传递一些值,同时更改viewpager选项卡片段。我有两个问题。

  1. 传递数据的最佳方式是什么?
  2. 如果我使用静态数据会有什么问题?如:

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

2 个答案:

答案 0 :(得分:1)

  1. 使用 addOnPageChangeListener
  2.   

    void addOnPageChangeListener(ViewPager.OnPageChangeListener listener)   添加一个侦听器,每当页面发生变化时都会调用该侦听器   递增滚动。

    如何?

     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) {
    
        }
    });
    

    点击

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

答案 1 :(得分:1)

您可以使用shared-preference设置和获取数据。使用静态不是一个好主意。检查链接

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