选择要在ViewPager中开始的片段 - Android

时间:2016-10-03 06:12:34

标签: java android android-layout android-fragments android-viewpager

我正在尝试创建一个登录屏幕,其中注册,登录和忘记密码屏幕都是片段,如下所示:

忘记密码|登录|注册

我在YouTube上发现了一个简单的视频,向我展示了如何执行此操作。我唯一的问题是,当我启动Activity时,它会打开Forgot Password片段,因为它是第一个,但我希望它从中间开始,即Login片段。这是主要活动的代码。我应该更改或添加到此代码中,或者我采取了错误的方法来实现我想要实现的目标

Access.java

public class Access extends FragmentActivity {

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

        initializePaging();
    }

    private void initializePaging() {
        List<Fragment> fragments = new Vector<>();
        fragments.add(Fragment.instantiate(this, AccessForgotPassword.class.getName()));
        fragments.add(Fragment.instantiate(this, AccessLogin.class.getName()));
        fragments.add(Fragment.instantiate(this, AccessRegister.class.getName()));

        PagerAdapter mPagerAdapter = new PagerAdapter(this.getSupportFragmentManager(), fragments);

        ViewPager accessViewPager = (ViewPager) findViewById(R.id.accessViewPager);
        accessViewPager.setAdapter(mPagerAdapter);
    }

}

access.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/accessMainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".access.Access">

    <android.support.v4.view.ViewPager
        android:id="@+id/accessViewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v4.view.ViewPager>

</LinearLayout>

AccessForgotPassword.java

public class AccessForgotPassword extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        if (container == null) {
            return null;
        }
        return inflater.inflate(R.layout.access_forgot_password, container, false);
    }

}

access_forgot_password.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/accessForgotPasswordMainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#FF0000">
</LinearLayout>

AccessLogin.java

public class AccessLogin extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        if (container == null) {
            return null;
        }
        return inflater.inflate(R.layout.access_login, container, false);
    }

}

access_login.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/accessLoginMainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#00FF00">
</LinearLayout>

AccessRegister.java

public class AccessRegister extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        if (container == null) {
            return null;
        }
        return inflater.infalte(R.layout.access_register, container, false);
    }

}

access_register.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/accessRegisterMainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#0000FF">
</LinearLayout>

4 个答案:

答案 0 :(得分:2)

设置

accessViewPager.setCurrentItem(1);

答案 1 :(得分:1)

尝试在accessViewPager.setCurrentItem(1)

的末尾添加onCreate()

答案 2 :(得分:1)

尝试在活动的onCreate()中设置accessViewPager.setCurrentItem(1);

答案 3 :(得分:1)

设置适配器后,您可以手动设置第二个片段以查看寻呼机

accessViewPager.setCurrentItem(1); // 0= ForgotPassword, 1=LoginScreen,...so on