Android Programming The Big Nerd Ranch Guide, 3rd Edition

(Brent) #1

Integrating CrimePagerActivity


221

Integrating CrimePagerActivity


Now you can begin the process of decommissioning CrimeActivity and putting CrimePagerActivity
in its place.


First, add a newIntent method to CrimePagerActivity along with an extra for the crime ID.


Listing 11.3  Creating newIntent (CrimePagerActivity.java)


public class CrimePagerActivity extends AppCompatActivity {
private static final String EXTRA_CRIME_ID =
"com.bignerdranch.android.criminalintent.crime_id";


private ViewPager mViewPager;
private List 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) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_crime_pager);


UUID crimeId = (UUID) getIntent()
.getSerializableExtra(EXTRA_CRIME_ID);
...
}
}


Now, you want pressing a list item in CrimeListFragment to start an instance of CrimePagerActivity
instead of CrimeActivity.


Return to CrimeListFragment.java and modify CrimeHolder.onClick(View) to start a
CrimePagerActivity.


Listing 11.4  Firing it up (CrimeListFragment.java)


private class CrimeHolder extends RecyclerView.ViewHolder
implements View.OnClickListener {
...
@Override
public void onClick(View view) {
Intent intent = CrimeActivity.newIntent(getActivity(), mCrime.getId());
Intent intent = CrimePagerActivity.newIntent(getActivity(), mCrime.getId());
startActivity(intent);
}
}


http://www.ebook3000.com

Free download pdf