2.我们需要完成以下任务
- 创建CrimePagerActivity类
- 定义包含ViewPager的视图层级结构
- 在新建的类中关联使用ViewPager及其他Adapter
- 修改CrimeHolder.onClick()方法
3.
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_crime_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_crime_pager);
}
- 设置pager Adapter(在开头所创建的类里面写代码)
//添加以下代码
private ViewPager mViewPager;
private List<Crime> mCrimes;
@Override
protected void onCreate(Bundle savedInstanceState){
//添加以下代码
mViewPager = (ViewPager) findViewById(R.id.activity_crime_view_pager);
mCrimes=CrimeLab.get(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();
}
});
}
- 整合并配置 我们放弃了之前的普通的代码 所以要把之前的代码加到新的里面
private static final String EXTRA_CRIME_ID = "com.bignerdranch.android.criminalintent.crime_id";
private ViewPager mViewPager;//上一个所加代码
private List<Crime> mCrimes;//上一个所加代码
public static Intent newIntent(Context packageContext, UUID crimeId){
Intent intent = new Intent(packageContext,CrimePagerActivity.class);
intent.putExtra(EXTRA_CRIME_ID,crimeId);
return intent;
}
@Override
protected void onCreate(Bundle savedInstanceState){
UUID crimeId=(UUID) getIntent().getSerializableExtra(EXTRA_CRIME_ID);
}
protected void onCreate(Bundle savedInstanceState){
//我们在onCrete方法里面添加
for(int i=0;i<mCrimes.size();i++){
if(mCrimes.get(i).getId().equals(crimeId)){
mViewPager.setCurrentItem(i);
break;
}
}
}