El objetivo de este ejemplo es crear una aplicación que permita cambiar la vista mostrada en el dispositivo Android cuando el usuario realiza la acción de arrastrar hacia los lados, como se puede ver en la siguiente imagen que es el resultado de este ejemplo.

EjemploTabs01

El primer paso será cambiar la estructura (layout) de la Activity, para que todo su contenido sea un elemento de tipo ViewPager, por lo que se debe cambiar completamente (si se desea que ocupe toda la pantalla) por el siguiente código:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

Observa que se le ha indicado como id el identificador pager, lo que debes tener en cuenta porque deberás usar a continuación ese identificador o el que le asignes. 

Para este ejemplo se han creado dos Fragment con el contenido de las dos vistas que aparecen al arrastrar la pantalla. Las clases Java de esos dos Fragment se han llamado Fragment1 y Fragment2, por lo que se usarán esos nombres para cargar el contenido de un Fragment u otro. Deberás cambiar esos nombres por los que tú desees para tu aplicación.

El contenido de cada Fragment deberá ser el que corresponda con cada vista. En este ejemplo tan sólo se ha incluido un TextView en cada Fragment para diferenciar uno de otro.

EjemploTabs02

El código de la clase Java correspondiente a la Activity deberá quedar similar al siguiente:

package es.javiergarciaescobedo.ejemplotabs;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MyPagerAdapter myPagerAdapter =
                new MyPagerAdapter(
                        getSupportFragmentManager());
        ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
        viewPager.setAdapter(myPagerAdapter);
    }
}

class MyPagerAdapter extends FragmentStatePagerAdapter {

    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int i) {
        Fragment fragment;
        switch(i) {
            case 0:
                fragment = new Fragment1();
                break;
            case 1:
                fragment = new Fragment2();
                break;
            default:
                fragment = null;
        }
        return fragment;
    }

    @Override
    public int getCount() {
        return 2;
    }

}

Procura que las librerías que se importen sean de los paquetes android.support, con el fin de que las clases importadas puedan ser reconocidas por dispositivos Android con versiones antiguas.

Asegurate de que en el metodo onCreate de la Activity se está haciendo referencia al id asignado al ViewPager que se ha comentado anteriormente, en este caso pager.

Como puedes ver, se utiiza una clase extendida FragmentStatePagerAdapter, donde se sobreescriben los métodos getItem y getCount. El método getItem debe retornar un objeto Fragment, que se corresponderá con el Fragment que se desea mostrar en cada caso (primera vista, segudna, etc). Deberás indicar tantos casos en el switch como Fragment se puedan mostrar.

Por otro lado, el método getCount debe retornar el número de vistas que se van a poder mostrar, es decir, el número de Fragments que va a poder cargar el Activity.

Puedes encontrar más información en el artículo Creating Swipe Views with Tabs de developer.android.com.