Android 如何在活动之间滑动(我的代码哪里出错?)

Android 如何在活动之间滑动(我的代码哪里出错?),android,android-viewpager,swipe,Android,Android Viewpager,Swipe,我有4个活动,有4个类&xml布局;我想在4个活动之间滑动!! 我使用另一篇文章中的代码(这篇文章:) 我想在触摸leftToright或rightToleft swipe时打开新活动 我的代码哪里错了: 我的代码: package com.package110.Y; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; im

我有4个活动,有4个类&xml布局;我想在4个活动之间滑动!! 我使用另一篇文章中的代码(这篇文章:)

我想在触摸leftToright或rightToleft swipe时打开新活动

我的代码哪里错了:

我的代码:

package com.package110.Y;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log; 
import android.view.MotionEvent;
import android.view.View;

public class ActivitySwipeDetectorActivity extends Activity {
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

 // how to set this 3 line to in my code Or change or update it        

 //ActivitySwipeDetector activitySwipeDetector = new ActivitySwipeDetector(this);
 //lowestLayout = (RelativeLayout)this.findViewById(R.id.lowestLayout);
 //lowestLayout.setOnTouchListener(activitySwipeDetector);

   }




    public class ActivitySwipeDetector implements View.OnTouchListener {


            Intent left = new Intent(getApplicationContext(), left.class);
            Intent right = new Intent(getApplicationContext(), right.class);
            Intent top = new Intent(getApplicationContext(), top.class);
            Intent bottom = new Intent(getApplicationContext(), bottom.class);


        static final String logTag = "ActivitySwipeDetector";
        private Activity activity;
        static final int MIN_DISTANCE = 100;
        private float downX, downY, upX, upY;

        public ActivitySwipeDetector(Activity activity){
            this.activity = activity;
        }

        public void onRightToLeftSwipe(){
            Log.i(logTag, "RightToLeftSwipe!");
            activity.startActivity(right);

        }

        public void onLeftToRightSwipe(){
            Log.i(logTag, "LeftToRightSwipe!");
            activity.startActivity(left);
        }

        public void onTopToBottomSwipe(){
            Log.i(logTag, "onTopToBottomSwipe!");
            activity.startActivity(top);
        }

        public void onBottomToTopSwipe(){
            Log.i(logTag, "onBottomToTopSwipe!");
            activity.startActivity(bottom);
        }

        public boolean onTouch(View v, MotionEvent event) {
            switch(event.getAction()){
                case MotionEvent.ACTION_DOWN: {
                    downX = event.getX();
                    downY = event.getY();
                    return true;
                }
                case MotionEvent.ACTION_UP: {
                    upX = event.getX();
                    upY = event.getY();

                    float deltaX = downX - upX;
                    float deltaY = downY - upY;

                    // swipe horizontal?
                    if(Math.abs(deltaX) > MIN_DISTANCE){
                        // left or right
                        if(deltaX < 0) { this.onLeftToRightSwipe(); return true; }
                        if(deltaX > 0) { this.onRightToLeftSwipe(); return true; }
                    }
                    else {
                            Log.i(logTag, "Swipe was only " + Math.abs(deltaX) + " long, need at least " + MIN_DISTANCE);
                            return false; // We don't consume the event
                    }

                    // swipe vertical?
                    if(Math.abs(deltaY) > MIN_DISTANCE){
                        // top or down
                        if(deltaY < 0) { this.onTopToBottomSwipe(); return true; }
                        if(deltaY > 0) { this.onBottomToTopSwipe(); return true; }
                    }
                    else {
                            Log.i(logTag, "Swipe was only " + Math.abs(deltaX) + " long, need at least " + MIN_DISTANCE);
                            return false; // We don't consume the event
                    }

                    return true;
                }
            }
            return false;
        }

        }



  }

我认为最好的方法是一个单独的活动和4个片段,以及一个ViewPager

您可以查看有关片段的链接:

这是关于ViewPager的:

我认为最好的方法是一个活动和4个片段,带一个ViewPager

您可以查看有关片段的链接:

这是关于ViewPager的:
应该使用
Fragment
s。它使导航更加干净

片段
活动
内部运行,其外观和功能与
活动
类似

下面是一些代码

活动
保存
片段
s

(选项卡和
ActionBar
可以隐藏)

如果您使用的是
AndroidStudio

  • 右键单击你的com.blah.bleh
  • 去纽约
  • 选择新建
    选项卡活动
    (向底部选择导航样式)
  • 然后创建
    片段
    s

  • 右键单击你的com.blah.bleh
  • 去纽约
  • 选择
    Fragment
    并选择
    Fragment
    类型
  • 在此设置
    活动
    类中的布局

        @Override
        public Fragment getItem(int position) {
            Fragment fragment = null;
            if (position == 0) {
                fragment = new FirstFragment();
            }
            if (position == 1) {
                fragment = new SecondFragment();
            }
            if (position == 2) {
                fragment = new ThirdFragment();
            }
            if (position == 3) {
                fragment = new FourthFragment();
            }
            return fragment;
        }
    

    希望有帮助

    你应该使用
    Fragment
    s。它使导航更加干净

    片段
    活动
    内部运行,其外观和功能与
    活动
    类似

    下面是一些代码

    活动
    保存
    片段
    s

    (选项卡和
    ActionBar
    可以隐藏)

    如果您使用的是
    AndroidStudio

  • 右键单击你的com.blah.bleh
  • 去纽约
  • 选择新建
    选项卡活动
    (向底部选择导航样式)
  • 然后创建
    片段
    s

  • 右键单击你的com.blah.bleh
  • 去纽约
  • 选择
    Fragment
    并选择
    Fragment
    类型
  • 在此设置
    活动
    类中的布局

        @Override
        public Fragment getItem(int position) {
            Fragment fragment = null;
            if (position == 0) {
                fragment = new FirstFragment();
            }
            if (position == 1) {
                fragment = new SecondFragment();
            }
            if (position == 2) {
                fragment = new ThirdFragment();
            }
            if (position == 3) {
                fragment = new FourthFragment();
            }
            return fragment;
        }
    

    希望有帮助

    尝试使用
    片段
    s!当我需要这样的东西时,我就是这么做的,它工作得非常好!尝试使用
    片段
    s!当我需要这样的东西时,我就是这么做的,它工作得非常好!
    public class FirstFragment extends Fragment {
    
        public ScoreFragment() {
            // Required empty public constructor
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            return inflater.inflate(R.layout.first_layout, container, false);
        }
    
        @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
            // YOUR CODE HERE
        }
    }
    
        @Override
        public Fragment getItem(int position) {
            Fragment fragment = null;
            if (position == 0) {
                fragment = new FirstFragment();
            }
            if (position == 1) {
                fragment = new SecondFragment();
            }
            if (position == 2) {
                fragment = new ThirdFragment();
            }
            if (position == 3) {
                fragment = new FourthFragment();
            }
            return fragment;
        }