Java 一个活动中有两个ViewPager

Java 一个活动中有两个ViewPager,java,android,android-fragments,android-viewpager,Java,Android,Android Fragments,Android Viewpager,关于ViewPager,我有两个问题 我的活动中有2个查看页,每周一个(日期)。例如,一个用于14/9/14-20/9/14,另一个用于下周21/9/14-27/9/14。当我将ViewPager滑动到下一个时,它会将每个ViewPager上的内容更改为其自身的下一周(21/9/14-27/9/14,28/9/14-4/10/14) 当我更改第二个ViewPager的数据,然后将第一个ViewPager滑动到下一个ViewPager时(这一周与我更改的第二个ViewPager数据相同),它不会显

关于ViewPager,我有两个问题

我的活动中有2个查看页,每周一个(日期)。例如,一个用于14/9/14-20/9/14,另一个用于下周21/9/14-27/9/14。当我将ViewPager滑动到下一个时,它会将每个ViewPager上的内容更改为其自身的下一周(21/9/14-27/9/14,28/9/14-4/10/14)

  • 当我更改第二个ViewPager的数据,然后将第一个ViewPager滑动到下一个ViewPager时(这一周与我更改的第二个ViewPager数据相同),它不会显示我所做的更改,除非我再滑动两次,然后返回到更改的一周(因为ViewPager的内存)。我尝试了
    mPager1.setOffscreenPageLimit(0),但没有帮助。我能做些什么来解决这个问题

  • 我希望当我滑动其中一个ViewPager时,另一个会像我的手指滑动另一个ViewPager一样自动设置动画。有什么办法吗

  • 我希望这有助于:

    它不会显示我所做的更改

    使用
    adapter.notifyDataSetChanged()进行更改后

    我希望当我滑动其中一个查看器时,另一个将 设置自身动画,就像我的手指滑动另一个ViewPager一样。 有什么办法吗

    如果你有

    09-19 05:49:29.313: E/AndroidRuntime(1272): java.lang.IllegalArgumentException: pointerIndex out of range
    
    尝试:
    在您的布局文件中,您必须使用
    我一生都无法理解上述任何内容…首先
    mPager1.setOffscreenPageLimit(0)因为用户体验而无法工作,第二,请把你的第一个问题弄清楚。@2Dee现在好多了?非常感谢!这才是我真正需要的!!将
    适配器.notifyDataSetChanged()放在何处?如何从活动中知道片段是否已更改?
    将适配器放置在何处。notifyDataSetChanged()更改片段数据后<代码>如何从活动中知道片段是否已更改?
    使用回调方法或使用
    getActivity().ihaveChanged()这意味着您从活动中调用了一个方法,如果不清楚,请询问该方法,并对您的情况进行完整描述。
    09-19 05:49:29.313:E/AndroidRuntime(1272):java.lang.IllegalArgumentException:pointerIndex超出范围
    当我使用
    onTouch
    方法时会发生什么我不知道那里发生了什么,但请用完整的logcat询问,我和其他人准备好帮助你..在你的布局文件中你必须使用
    
    
    09-19 05:49:29.313: E/AndroidRuntime(1272): java.lang.IllegalArgumentException: pointerIndex out of range
    
    public class HackyViewPager extends ViewPager {
    
        public HackyViewPager(Context context) {
            super(context);
    
        }
        public HackyViewPager(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
    
            try {
                return super.onInterceptTouchEvent(ev);
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
                return false;
            }
    
       }
       @Override
       public boolean onTouchEvent(MotionEvent event) {
           try {
            return super.onTouchEvent(event);
         }catch (IllegalArgumentException e) {
                e.printStackTrace();
                return false;
         }
    
       }
    
    }