Advertisement
Guest User

Untitled

a guest
Mar 4th, 2017
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.27 KB | None | 0 0
  1. // MainActivity
  2. public class MainActivity extends AppCompatActivity implements ImageListFragment.OnGalleryImageSelected {
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_main);
  7.  
  8. if (savedInstanceState == null) {
  9. getSupportFragmentManager()
  10. .beginTransaction()
  11. .add(R.id.root_layout, ImageListFragment.newInstance(), "galleryImageList")
  12. .commit();
  13. }
  14. }
  15. @Override
  16. public void OnGalleryImageSelected(int imageResId) {
  17. final ImageDetailFragment detailsFragment = ImageDetailFragment.newInstance(imageResId);
  18. getSupportFragmentManager()
  19. .beginTransaction()
  20. .replace(R.id.root_layout, detailsFragment, "galleryImageDetails")
  21. .addToBackStack(null)
  22. .commit();
  23. }
  24.  
  25. }
  26.  
  27. // ImageDetailFragment
  28.  
  29. public class ImageDetailFragment extends Fragment {
  30. private static final String IMAGE_ID = "imageResId";
  31.  
  32. public static ImageDetailFragment newInstance(int imageResId) {
  33.  
  34. final Bundle args = new Bundle();
  35. args.putInt(IMAGE_ID, imageResId);
  36. final ImageDetailFragment fragment = new ImageDetailFragment();
  37. fragment.setArguments(args);
  38. return fragment;
  39. }
  40. @Override
  41. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  42. final View view = inflater.inflate(R.layout.fragment_image_details, container, false);
  43. final ImageView imageView = (ImageView) view.findViewById(R.id.gallery_image);
  44. final Bundle args = getArguments();
  45. imageView.setImageResource(args.getInt(IMAGE_ID));
  46. return view;
  47. }
  48.  
  49. }
  50.  
  51. // ImageListFragment
  52.  
  53. public class ImageListFragment extends Fragment {
  54. private int[] mImageResIds;
  55. private OnGalleryImageSelected mListener;
  56. public static ImageListFragment newInstance() {
  57. return new ImageListFragment();
  58. }
  59. @Override
  60. public void onAttach(Context context) {
  61. super.onAttach(context);
  62.  
  63. mListener = (OnGalleryImageSelected) context;
  64.  
  65. final Resources resources = context.getResources();
  66. final TypedArray typedArray = resources.obtainTypedArray(R.array.images);
  67. final int imageCount = 18;
  68. mImageResIds = new int[imageCount];
  69. for (int i = 0; i < imageCount; i++) {
  70. mImageResIds[i] = typedArray.getResourceId(i, 0);
  71. }
  72. typedArray.recycle();
  73. }
  74.  
  75.  
  76. @Override
  77. public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  78. final View view = inflater.inflate(R.layout.fragment_image_list, container, false);
  79.  
  80. final Activity activity = getActivity();
  81. final RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
  82. recyclerView.setLayoutManager(new LinearLayoutManager(activity));
  83. recyclerView.setAdapter(new GalleryImageAdapter(activity));
  84. return view;
  85. }
  86.  
  87. class GalleryImageAdapter extends RecyclerView.Adapter<ViewHolder> {
  88.  
  89. private LayoutInflater mLayoutInflater;
  90.  
  91. public GalleryImageAdapter(Context context) {
  92. mLayoutInflater = LayoutInflater.from(context);
  93. }
  94.  
  95. @Override
  96. public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
  97. return new ViewHolder(mLayoutInflater
  98. .inflate(R.layout.recycler_view, viewGroup, false));
  99. }
  100.  
  101. @Override
  102. public void onBindViewHolder(ViewHolder viewHolder, final int position) {
  103.  
  104. final int imageResId = mImageResIds[position];
  105.  
  106. viewHolder.setData(imageResId);
  107. viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
  108. @Override
  109. public void onClick(View v) {
  110. System.out.println("sending to pager");
  111. System.out.println(position);
  112. Intent intent = FooPager.newIntent(getActivity(),position);
  113. startActivity (intent);
  114. // mListener.OnGalleryImageSelected(imageResId);
  115. }
  116. });
  117. }
  118.  
  119. @Override
  120. public int getItemCount() {
  121. return mImageResIds.length;
  122. }
  123. }
  124.  
  125. class ViewHolder extends RecyclerView.ViewHolder {
  126. private ImageView mImageView;
  127. private ViewHolder(View itemView) {
  128. super(itemView);
  129. mImageView = (ImageView) itemView.findViewById(R.id.gallery_image);
  130.  
  131. }
  132. private void setData(int imageResId) {
  133. mImageView.setImageResource(imageResId);
  134. }
  135. }
  136. public interface OnGalleryImageSelected {
  137. void OnGalleryImageSelected(int imageResId);
  138. }
  139. }
  140.  
  141. // FooPager
  142.  
  143. public class FooPager extends FragmentActivity{
  144. public static final String EXTRA_IMAGE_ID = "meow";
  145. public static int id = 0;
  146. private ViewPager mViewPager;
  147. private Integer images [] = {
  148. R.drawable.a, R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e,
  149. R.drawable.f, R.drawable.g, R.drawable.h,R.drawable.i,R.drawable.j,
  150. R.drawable.k, R.drawable.l, R.drawable.m,R.drawable.n,R.drawable.o,
  151. R.drawable.p, R.drawable.q, R.drawable.r
  152. };
  153.  
  154. public static Intent newIntent(Context packageContext, int id) {
  155. Intent intent = new Intent(packageContext,FooPager.class);
  156. intent.putExtra(EXTRA_IMAGE_ID,id);
  157. id = id;
  158. return intent;
  159. }
  160.  
  161. @Override
  162. protected void onCreate (Bundle savedInstanceState) {
  163. super.onCreate (savedInstanceState);
  164. setContentView(R.layout.activity_image_pager);
  165. mViewPager = (ViewPager) findViewById (R.id.activity_image_pager_view_pager);
  166.  
  167. FragmentManager fragmentManager = getSupportFragmentManager ();
  168. mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager) {
  169. @Override
  170. public Fragment getItem(int position) {
  171.  
  172. System.out.println(images[position]);
  173. int id = images[position];
  174. return ImageDetailFragment.newInstance(id);
  175. }
  176.  
  177. @Override
  178. public int getCount() {
  179. return images.length;
  180. }
  181. });
  182.  
  183. for (int i=0; i < images.length; i++) {
  184. if(images[i] == id) {
  185. mViewPager.setCurrentItem(i);
  186. break;
  187. }
  188. }
  189. }
  190. }
  191.  
  192. // AndroidManifest
  193.  
  194. <application
  195. android:allowBackup="true"
  196. android:icon="@mipmap/ic_launcher"
  197. android:label="@string/app_name"
  198. android:supportsRtl="true"
  199. android:theme="@style/AppTheme">
  200. <activity android:name=".MainActivity">
  201. <intent-filter>
  202. <action android:name="android.intent.action.MAIN" />
  203.  
  204. <category android:name="android.intent.category.LAUNCHER" />
  205. </intent-filter>
  206. </activity>
  207. <activity android:name=".FooPager"
  208. android:label="@string/app_name">
  209. </activity>
  210. </application>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement