Android Criminal实例--(4)使用ViewPager实现分页

显示了每一项的明细后,再实现左右滑动查看其他明细部分。
这里我们要使用ViewPager

首先创建CrimePagerActivity类,并绑定布局文件
activity_crime_pager.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

</LinearLayout>

CrimePagerActivity:

public class CrimePagerActivity extends AppCompatActivity {

    private ViewPager mViewPager;
    private List<Crime>mCrimes;

    private static final String EXTRA_ID="com.apple.CrimePagerActivity.crime_id";


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_crime_pager);
        //获取id
        UUID crimeid=(UUID)getIntent().getSerializableExtra(EXTRA_ID);

        //初始化ViewPager
        mViewPager=(ViewPager)findViewById(R.id.activity_crime_pager);
        mCrimes= CrimeLab.getCrimeLab(this).getCrimes();

        //添加适配器
        FragmentManager fragmentManager=getSupportFragmentManager();
        mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager) {
            @Override
            public Fragment getItem(int position) {
                //获取每一项
                Crime crime=mCrimes.get(position);
                return CrimeFragment.newInstance(crime.getId());
            }

            //总共多少项
            @Override
            public int getCount() {
                return mCrimes.size();
            }
        });

        //每次点击后显示的都是第一页,设置显示为点击那一项所在的页面
        for(int i=0;i<mCrimes.size();i++){
            if(mCrimes.get(i).getId().equals(crimeid)){
                mViewPager.setCurrentItem(i);
            }
        }
    }

    //传入id
    public static Intent newIntent(Context context, UUID crimeid){
        Intent intent=new Intent(context,CrimePagerActivity.class);
        intent.putExtra(EXTRA_ID,crimeid);
        return intent;
    }
}

接下来还要修改每一项点击后启动的activity,将其改为CrimePagerActivity
这里写图片描述

猜你喜欢

转载自blog.csdn.net/ayangann915/article/details/81290061
今日推荐