Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用viewpager.setCurrentItem(位置)传递一些数据_Java_Android_Android Viewpager - Fatal编程技术网

Java 使用viewpager.setCurrentItem(位置)传递一些数据

Java 使用viewpager.setCurrentItem(位置)传递一些数据,java,android,android-viewpager,Java,Android,Android Viewpager,我想在viewpager选项卡片段更改的情况下在按钮单击中传递一些值。我有两个问题 传递数据的最佳方式是什么 如果我使用静态数据,会有什么问题?例如: public static string abc="" case R.id.IVActionMore: ViewPager viewPager = (ViewPager) getActivity().findViewById(R.id.tabs_viewpager); viewPager.setCurrentItem(3); //abc

我想在viewpager选项卡片段更改的情况下在按钮单击中传递一些值。我有两个问题

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

    public static string abc=""
    
    case R.id.IVActionMore:   
    ViewPager viewPager = (ViewPager) getActivity().findViewById(R.id.tabs_viewpager);
    viewPager.setCurrentItem(3);
    //abc = "action";
    break;
    
  • 使用
  • void addOnPageChangeListener(ViewPager.OnPageChangeListener侦听器) 添加一个监听器,该监听器将在页面更改或更改时调用 递增滚动

    怎么做?

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

    您可以使用共享首选项来设置和获取数据。使用静态不是一个好主意。检查链接


    你试过addOnPageChangeListenerWell吗?对我来说,使用静态字符串没有问题,我也用它来传递一些信息。我只是涉猎过Android开发,但有一些上下文对象你应该用来放置数据。静态不是一个好主意,因为它们不受生命周期概念的控制,所以你的应用程序可能会在没有注意到的情况下重新加载,数据也会消失。是的,我也尝试过只更改选项卡,但如何传递数据。最好的方法是什么。我想在点击按钮时更改页面。谢谢你的重播。但是“不要使用静态,这不是一个好方法”。最好的方法是什么?我如何在您的代码中使用它。@t.gakk对于
    静态
    没有问题。但是从@t.gakk知道我使用的
    SharedRef
    没有问题yet@t.gakk对于您的上述问题,请检查传递数据的最佳方式是什么?您可以检查以下内容: