Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // MainActivity
- public class MainActivity extends AppCompatActivity implements ImageListFragment.OnGalleryImageSelected {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- if (savedInstanceState == null) {
- getSupportFragmentManager()
- .beginTransaction()
- .add(R.id.root_layout, ImageListFragment.newInstance(), "galleryImageList")
- .commit();
- }
- }
- @Override
- public void OnGalleryImageSelected(int imageResId) {
- final ImageDetailFragment detailsFragment = ImageDetailFragment.newInstance(imageResId);
- getSupportFragmentManager()
- .beginTransaction()
- .replace(R.id.root_layout, detailsFragment, "galleryImageDetails")
- .addToBackStack(null)
- .commit();
- }
- }
- // ImageDetailFragment
- public class ImageDetailFragment extends Fragment {
- private static final String IMAGE_ID = "imageResId";
- public static ImageDetailFragment newInstance(int imageResId) {
- final Bundle args = new Bundle();
- args.putInt(IMAGE_ID, imageResId);
- final ImageDetailFragment fragment = new ImageDetailFragment();
- fragment.setArguments(args);
- return fragment;
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- final View view = inflater.inflate(R.layout.fragment_image_details, container, false);
- final ImageView imageView = (ImageView) view.findViewById(R.id.gallery_image);
- final Bundle args = getArguments();
- imageView.setImageResource(args.getInt(IMAGE_ID));
- return view;
- }
- }
- // ImageListFragment
- public class ImageListFragment extends Fragment {
- private int[] mImageResIds;
- private OnGalleryImageSelected mListener;
- public static ImageListFragment newInstance() {
- return new ImageListFragment();
- }
- @Override
- public void onAttach(Context context) {
- super.onAttach(context);
- mListener = (OnGalleryImageSelected) context;
- final Resources resources = context.getResources();
- final TypedArray typedArray = resources.obtainTypedArray(R.array.images);
- final int imageCount = 18;
- mImageResIds = new int[imageCount];
- for (int i = 0; i < imageCount; i++) {
- mImageResIds[i] = typedArray.getResourceId(i, 0);
- }
- typedArray.recycle();
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- final View view = inflater.inflate(R.layout.fragment_image_list, container, false);
- final Activity activity = getActivity();
- final RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
- recyclerView.setLayoutManager(new LinearLayoutManager(activity));
- recyclerView.setAdapter(new GalleryImageAdapter(activity));
- return view;
- }
- class GalleryImageAdapter extends RecyclerView.Adapter<ViewHolder> {
- private LayoutInflater mLayoutInflater;
- public GalleryImageAdapter(Context context) {
- mLayoutInflater = LayoutInflater.from(context);
- }
- @Override
- public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
- return new ViewHolder(mLayoutInflater
- .inflate(R.layout.recycler_view, viewGroup, false));
- }
- @Override
- public void onBindViewHolder(ViewHolder viewHolder, final int position) {
- final int imageResId = mImageResIds[position];
- viewHolder.setData(imageResId);
- viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- System.out.println("sending to pager");
- System.out.println(position);
- Intent intent = FooPager.newIntent(getActivity(),position);
- startActivity (intent);
- // mListener.OnGalleryImageSelected(imageResId);
- }
- });
- }
- @Override
- public int getItemCount() {
- return mImageResIds.length;
- }
- }
- class ViewHolder extends RecyclerView.ViewHolder {
- private ImageView mImageView;
- private ViewHolder(View itemView) {
- super(itemView);
- mImageView = (ImageView) itemView.findViewById(R.id.gallery_image);
- }
- private void setData(int imageResId) {
- mImageView.setImageResource(imageResId);
- }
- }
- public interface OnGalleryImageSelected {
- void OnGalleryImageSelected(int imageResId);
- }
- }
- // FooPager
- public class FooPager extends FragmentActivity{
- public static final String EXTRA_IMAGE_ID = "meow";
- public static int id = 0;
- private ViewPager mViewPager;
- private Integer images [] = {
- R.drawable.a, R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e,
- R.drawable.f, R.drawable.g, R.drawable.h,R.drawable.i,R.drawable.j,
- R.drawable.k, R.drawable.l, R.drawable.m,R.drawable.n,R.drawable.o,
- R.drawable.p, R.drawable.q, R.drawable.r
- };
- public static Intent newIntent(Context packageContext, int id) {
- Intent intent = new Intent(packageContext,FooPager.class);
- intent.putExtra(EXTRA_IMAGE_ID,id);
- id = id;
- return intent;
- }
- @Override
- protected void onCreate (Bundle savedInstanceState) {
- super.onCreate (savedInstanceState);
- setContentView(R.layout.activity_image_pager);
- mViewPager = (ViewPager) findViewById (R.id.activity_image_pager_view_pager);
- FragmentManager fragmentManager = getSupportFragmentManager ();
- mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager) {
- @Override
- public Fragment getItem(int position) {
- System.out.println(images[position]);
- int id = images[position];
- return ImageDetailFragment.newInstance(id);
- }
- @Override
- public int getCount() {
- return images.length;
- }
- });
- for (int i=0; i < images.length; i++) {
- if(images[i] == id) {
- mViewPager.setCurrentItem(i);
- break;
- }
- }
- }
- }
- // AndroidManifest
- <application
- android:allowBackup="true"
- android:icon="@mipmap/ic_launcher"
- android:label="@string/app_name"
- android:supportsRtl="true"
- android:theme="@style/AppTheme">
- <activity android:name=".MainActivity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity android:name=".FooPager"
- android:label="@string/app_name">
- </activity>
- </application>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement