Android 滑动视图后,启动一个活动

Android 滑动视图后,启动一个活动,android,Android,我试图在Android API 16中实现以下目标: 我想能够在两个屏幕上滑动,然后我有一个活动,登录,开始。现在,登录活动将显示一个祝酒词。 屏幕1-->屏幕2-->启动活动(例如登录/注册屏幕) 我使用了fragments和ViewPager,并成功地从屏幕1滑动到屏幕2。然而,我被困在如何继续超越这一点 我已使用意图启动活动。但这会导致过渡屏幕1-->2未显示,但我确实从登录屏幕收到toast消息。我不确定将意图放在何处,或者我是否以正确的方式这样做 我将如何处理这个问题?欢迎您提出任何想

我试图在Android API 16中实现以下目标: 我想能够在两个屏幕上滑动,然后我有一个活动,登录,开始。现在,登录活动将显示一个祝酒词。
屏幕1-->屏幕2-->启动活动(例如登录/注册屏幕)

我使用了fragments和ViewPager,并成功地从屏幕1滑动到屏幕2。然而,我被困在如何继续超越这一点

我已使用意图启动活动。但这会导致过渡屏幕1-->2未显示,但我确实从登录屏幕收到toast消息。我不确定将意图放在何处,或者我是否以正确的方式这样做


我将如何处理这个问题?欢迎您提出任何想法或建议。

制作另一个第三个片段,并使用以下代码:

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

        }

        @Override
        public void onPageSelected(int position) {
            if(position==2)
            {
                //call activity
            }
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

请使用以下自定义类替代视图寻呼机

import android.content.Context;
import android.support.v4.view.MotionEventCompat;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;


public class CustomViewPager extends ViewPager {

    float mStartDragX;
    OnSwipeOutListener mListener;

    public CustomViewPager(Context context) {
        super(context);
    }

    public CustomViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }


    public void setOnSwipeOutListener(OnSwipeOutListener listener) {
        mListener = listener;
    }

    @Override
    public boolean onTouchEvent(MotionEvent ev){
        if(getCurrentItem()==getAdapter().getCount()-1){
            final int action = ev.getAction();
            float x = ev.getX();
            switch(action & MotionEventCompat.ACTION_MASK){
                case MotionEvent.ACTION_DOWN:
                    mStartDragX = x;
                    break;
                case MotionEvent.ACTION_MOVE:
                    break;
                case MotionEvent.ACTION_UP:
                    if (x<mStartDragX){
                        mListener.onSwipeOutAtEnd();
                    }else{
                        mStartDragX = 0;
                    }
                    break;
            }
        }else{
            mStartDragX=0;
        }
        return super.onTouchEvent(ev);
    }
    public interface OnSwipeOutListener {
        public void onSwipeOutAtEnd();
    }

}

首先创建一个包含3个片段的视图寻呼机,尽管第三个片段永远看不到。然后,在包含视图寻呼机的活动中实现以下侦听器

mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            if (position == 2){
              // Create the intent to launch the login screen.
             Intent intent = new Intent(mActivity.this, mLoginActivity.this);
             startActivity(intent); 
             }
        }

        @Override
        public void onPageSelected(int position) {
            // If your view pager has tabs you will need to create the intent here as well.
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

我只是想知道你想要什么 如果我错了,请纠正我

我想你的要求是 当用户第一次使用应用程序时,请放映一些幻灯片,然后将其重定向到登录或注册 与xender或其他应用程序中相同

我认为您使用查看页面显示幻灯片,然后打开登录/注册活动,这样做是正确的 但您的问题是何时打开登录/注册活动

我认为您应该在第二张幻灯片/页面上按下按钮,以继续登录/注册活动

我附上了一个xender应用程序的屏幕截图示例,说明他是如何做到这一点的 他在最后一个屏幕上有一个开始>按钮,可以在幻灯片结束后继续进行另一项活动

若你们不想按下按钮,用户想在第二个屏幕右击进入登录/注册 然后就可以采用其他解决方案了


您可以发布代码吗?ViewPager显示片段或视图,而不是活动。你不用意图。在视图寻呼机中使用PagerAdapterMake 3片段。在第三页完全滑动(onPageSelected()方法)后,然后调用onPageSelected方法中的活动。我认为@DheerubhaiBansal的答案是正确的。如果我的答案是正确的,请投票。谢谢Alexi。我使用了你的建议,效果很好。我已经接受了答案,但因为我的声誉不到15(刚刚注册),所以没有表现出来。谢谢你,我理解。非常感谢,谢谢。我用了你和亚历克西的建议,非常简单。
 mPager = (CustomViewPager) findViewById(R.id.pager);
        mPager.setOnSwipeOutListener(new CustomViewPager.OnSwipeOutListener() {

            @Override
            public void onSwipeOutAtEnd() {
                Log.d("callledby me","yes");
            }
        });
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            if (position == 2){
              // Create the intent to launch the login screen.
             Intent intent = new Intent(mActivity.this, mLoginActivity.this);
             startActivity(intent); 
             }
        }

        @Override
        public void onPageSelected(int position) {
            // If your view pager has tabs you will need to create the intent here as well.
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });