1.首先我们先要新增fragement classc &fragment layout 

 

2.MainActivity.class

 
package com.example.a2lab.fragment1;

import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

    private static final String TAG="MainActivity";

    private SectionsStatePagerAdapter mSectionsStatePagerAdapter;
    private ViewPager mViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d(TAG,"onCreate: Started.");

        mSectionsStatePagerAdapter=new SectionsStatePagerAdapter(getSupportFragmentManager());
        mViewPager=(ViewPager) findViewById(R.id.containter);
        setupViewPager(mViewPager);
    }

    private  void setupViewPager(ViewPager viewPager){
        SectionsStatePagerAdapter adapter = new SectionsStatePagerAdapter(getSupportFragmentManager());
        adapter.addFragment(new Fragement1(),"Fragment1");
        adapter.addFragment(new Fragement2(),"Fragment2");
        adapter.addFragment(new Fragement3(),"Fragment3");
        viewPager.setAdapter(adapter);
    }
    public void setViewPager(int fragmentNumber){
         mViewPager.setCurrentItem(fragmentNumber);
    }
}
 
3.SectionStatePagerAdpter.class
package com.example.a2lab.fragment1;

 

import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager;

import android.support.v4.app.FragmentStatePagerAdapter; import java.util.ArrayList;

import java.util.List;

 

/** * Created by A2lab on 2017/10/30. */

 

public class SectionsStatePagerAdapter extends FragmentStatePagerAdapter {

 

private final List<Fragment> mFragmentList= new ArrayList<>();

private final List<String> mFragmentTitleList= new ArrayList<>();

public SectionsStatePagerAdapter(FragmentManager fm){ super(fm);

 

}

 

public void addFragment(Fragment fragment,String title)

{

mFragmentList.add(fragment); mFragmentTitleList.add(title);

}

 

@Override public Fragment getItem(int position) {

return mFragmentList.get(position);

}

@Override public int getCount() {

return mFragmentList.size();

}

}

 

4.Fragment1.class

package com.example.a2lab.fragment1;

import android.content.Intent;

import android.os.Bundle;

import android.support.annotation.Nullable;

import android.support.v4.app.Fragment;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.Button;

import android.widget.Toast;

 

/** * Created by A2lab on 2017/10/30. */

public class Fragement1 extends Fragment {

private static final String TAG ="Fragment1";

private Button btnNavFrag1;

private Button btnNavFrag2;

private Button btnNavFrag3;

private Button btnNavSecondActivity;

 

@Nullable

@Override

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

View view =inflater.inflate(R.layout.fragment1_layout,container,false);

btnNavFrag1=(Button)view.findViewById(R.id.btnNavFrag1);

btnNavFrag2=(Button)view.findViewById(R.id.btnNavFrag2);

btnNavFrag3=(Button)view.findViewById(R.id.btnNavFrag3);

btnNavSecondActivity=(Button)view.findViewById(R.id.btnNavSecondActivity);

Log.d(TAG,"onCreatView: started.");

btnNavFrag1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(getActivity(),"Going to Fragment 1",Toast.LENGTH_SHORT).show();

((MainActivity)getActivity()).setViewPager(0);

}

});

btnNavFrag2.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(getActivity(),"Going to Fragment 2",Toast.LENGTH_SHORT).show();

((MainActivity)getActivity()).setViewPager(1);

}

});

btnNavFrag3.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(getActivity(),"Going to Fragment 3",Toast.LENGTH_SHORT).show();

((MainActivity)getActivity()).setViewPager(2);

}

});

btnNavSecondActivity.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(getActivity(),"Going to Fragment btnNavSecondActivity",Toast.LENGTH_SHORT).show();

Intent intent=new Intent(getActivity(),SecondActivtiy.class); startActivity(intent);

}

});

return view;

}

}

 

4.Fragment1.class

package com.example.a2lab.fragment1;

import android.content.Intent;

import android.os.Bundle;

import android.support.annotation.Nullable;

import android.support.v4.app.Fragment;

import android.util.Log; import android.view.LayoutInflater;

import android.view.View; import android.view.ViewGroup;

import android.widget.Button; import android.widget.Toast;

 

/** * Created by A2lab on 2017/10/30. */

 

public class Fragement1 extends Fragment {

private static final String TAG ="Fragment1";

private Button btnNavFrag1;

private Button btnNavFrag2;

private Button btnNavFrag3;

private Button btnNavSecondActivity;

@Nullable

@Override

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

 

View view =inflater.inflate(R.layout.fragment1_layout,container,false);

btnNavFrag1=(Button)view.findViewById(R.id.btnNavFrag1);

btnNavFrag2=(Button)view.findViewById(R.id.btnNavFrag2);

btnNavFrag3=(Button)view.findViewById(R.id.btnNavFrag3);

btnNavSecondActivity=(Button)view.findViewById(R.id.btnNavSecondActivity);

Log.d(TAG,"onCreatView: started.");

btnNavFrag1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(getActivity(),"Going to Fragment 1",Toast.LENGTH_SHORT).show();

((MainActivity)getActivity()).setViewPager(0);

}

});

btnNavFrag2.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(getActivity(),"Going to Fragment 2",Toast.LENGTH_SHORT).show();

((MainActivity)getActivity()).setViewPager(1);

}

});

btnNavFrag3.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(getActivity(),"Going to Fragment 3",Toast.LENGTH_SHORT).show();

((MainActivity)getActivity()).setViewPager(2);

}

});

btnNavSecondActivity.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(getActivity(),"Going to Fragment btnNavSecondActivity",Toast.LENGTH_SHORT).show();

Intent intent=new Intent(getActivity(),SecondActivtiy.class);

startActivity(intent);

}

});

return view;

}

}

 
 

5.fragment2.class

 

package com.example.a2lab.fragment1; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.Toast; /** * Created by A2lab on 2017/10/30. */ public class Fragement2 extends Fragment { private static final String TAG ="Fragment1"; private Button btnNavFrag1; private Button btnNavFrag2; private Button btnNavFrag3; private Button btnNavSecondActivity; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view =inflater.inflate(R.layout.fragment2_layout,container,false); btnNavFrag1=(Button)view.findViewById(R.id.btnNavFrag1); btnNavFrag2=(Button)view.findViewById(R.id.btnNavFrag2); btnNavFrag3=(Button)view.findViewById(R.id.btnNavFrag3); btnNavSecondActivity=(Button)view.findViewById(R.id.btnNavSecondActivity); Log.d(TAG,"onCreatView: started."); btnNavFrag1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getActivity(),"Going to Fragment 1",Toast.LENGTH_SHORT).show(); ((MainActivity)getActivity()).setViewPager(0); } }); btnNavFrag2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getActivity(),"Going to Fragment 2",Toast.LENGTH_SHORT).show(); ((MainActivity)getActivity()).setViewPager(1); } }); btnNavFrag3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getActivity(),"Going to Fragment 3",Toast.LENGTH_SHORT).show(); ((MainActivity)getActivity()).setViewPager(2); } }); btnNavSecondActivity.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getActivity(),"Going to Fragment btnNavSecondActivity",Toast.LENGTH_SHORT).show(); Intent intent=new Intent(getActivity(),SecondActivtiy.class); startActivity(intent); } }); return view; } }

 

6.fragment3.class

 

package com.example.a2lab.fragment1; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.Toast; /** * Created by A2lab on 2017/10/30. */ public class Fragement3 extends Fragment { private static final String TAG ="Fragment1"; private Button btnNavFrag1; private Button btnNavFrag2; private Button btnNavFrag3; private Button btnNavSecondActivity; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view =inflater.inflate(R.layout.fragment3_layout,container,false); btnNavFrag1=(Button)view.findViewById(R.id.btnNavFrag1); btnNavFrag2=(Button)view.findViewById(R.id.btnNavFrag2); btnNavFrag3=(Button)view.findViewById(R.id.btnNavFrag3); btnNavSecondActivity=(Button)view.findViewById(R.id.btnNavSecondActivity); Log.d(TAG,"onCreatView: started."); btnNavFrag1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getActivity(),"Going to Fragment 1",Toast.LENGTH_SHORT).show(); ((MainActivity)getActivity()).setViewPager(0); } }); btnNavFrag2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getActivity(),"Going to Fragment 2",Toast.LENGTH_SHORT).show(); ((MainActivity)getActivity()).setViewPager(1); } }); btnNavFrag3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getActivity(),"Going to Fragment 3",Toast.LENGTH_SHORT).show(); ((MainActivity)getActivity()).setViewPager(2); } }); btnNavSecondActivity.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getActivity(),"Going to Fragment btnNavSecondActivity",Toast.LENGTH_SHORT).show(); Intent intent=new Intent(getActivity(),SecondActivtiy.class); startActivity(intent); } }); return view; } }

 

7.SecondActivtiy.class

package com.example.a2lab.fragment1; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.util.Log; /** * Created by A2lab on 2017/10/30. */ public class SecondActivtiy extends AppCompatActivity{ private static final String TAG="SecondActivtiy"; @Override protected void onCreate(@Nullable Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.second_activity_layout); Log.d(TAG,"onCreate: Started."); } }

8. fragment1.layout (fragment2.3以此类推)

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent">

 

<TextView

android:id="@+id/textTitle"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_marginTop="40dp"

android:text="Welecome to Fragement1" android:textSize="25dp" />

 

<Button

android:id="@+id/btnNavFrag1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/textTitle"

android:layout_centerHorizontal="true"

android:layout_marginTop="10dp"

android:text="Go to Fragment1" />

 

<Button

android:id="@+id/btnNavFrag2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/btnNavFrag1"

android:layout_centerHorizontal="true"

android:layout_marginTop="10dp"

android:text="Go to Fragment2" />

 

<Button

android:id="@+id/btnNavFrag3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/btnNavFrag2"

android:layout_centerHorizontal="true"

android:layout_marginTop="10dp"

android:text="Go to Fragment3" />

 

<Button

android:id="@+id/btnNavSecondActivity"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@+id/btnNavFrag3"

android:layout_centerHorizontal="true"

android:layout_marginTop="10dp"

android:text="Go to Second Activity" />

 

</RelativeLayout>

 

9.Second_activity.layout

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:text="This is the SecondActivity Layout"
        android:layout_centerHorizontal="true"
        android:textSize="25dp"
        />

10.activity_main

<android.support.v4.view.ViewPager
        android:layout_width="368dp"
        android:layout_height="495dp"
        android:id="@+id/containter"
        tools:layout_editor_absoluteY="8dp"
        tools:layout_editor_absoluteX="8dp">
    </android.support.v4.view.ViewPager>

11.上图

 

 

12.结论:

viewerpager其实它是可以左右滑动换页的,在这个例子中把它变成用button 换页,

所以若是不想左右滑动换页可以换另外一种写法

请看下一篇

使用ViewPager制作多个fragment-2

 

查看原文 >>
相关文章