Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.46 KB | None | 0 0
  1. public class Main3Activity extends AppCompatActivity implements ViewClickCallBack {
  2. private RecyclerView recyclerView;
  3. private GridAdapter gridAdapter;
  4. private List<Model> models = new ArrayList<>();
  5. private final int SIZE_NEXT_ITEM=5;
  6.  
  7. @Override
  8. protected void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.activity_main3);
  11. recyclerView = (RecyclerView) findViewById(R.id.grid_recycle);
  12. gridAdapter = new GridAdapter(this);
  13. getNextModel();
  14. gridAdapter.setModels(models);
  15. RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(this, 3);
  16. recyclerView.setLayoutManager(mLayoutManager);
  17. recyclerView.setAdapter(gridAdapter);
  18. }
  19.  
  20. @Override
  21. public void viewClicked(int position) {
  22. models.get(position-1).setUploaded(true);// Need to set as per req.
  23. int gridItemCount = gridAdapter.getItemCount();
  24. if ((gridItemCount - position) == 1) {
  25.  
  26. getNextModel();
  27. gridAdapter.setModels(models);
  28.  
  29. } else {
  30. Toast.makeText(this, "Popup Image picker", Toast.LENGTH_SHORT).show();
  31. }
  32. gridAdapter.notifyDataSetChanged();
  33. }
  34.  
  35. private void getNextModel() {
  36. for (int i = 0; i < SIZE_NEXT_ITEM; i++) {
  37. Model model = new Model();
  38. model.setUploaded(false);
  39. models.add(model);
  40. }
  41.  
  42. }
  43.  
  44.  
  45. }
  46.  
  47. <?xml version="1.0" encoding="utf-8"?>
  48. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  49. xmlns:tools="http://schemas.android.com/tools"
  50. android:layout_width="match_parent"
  51. android:layout_height="match_parent"
  52. android:paddingBottom="@dimen/activity_vertical_margin"
  53. android:paddingLeft="@dimen/activity_horizontal_margin"
  54. android:paddingRight="@dimen/activity_horizontal_margin"
  55. android:paddingTop="@dimen/activity_vertical_margin"
  56. tools:context="work.sof.ghost.myapplication.Main3Activity">
  57. <android.support.v7.widget.RecyclerView
  58. android:id="@+id/grid_recycle"
  59. android:layout_width="match_parent"
  60. android:layout_height="wrap_content"/>
  61.  
  62. </RelativeLayout>
  63.  
  64. public class GridAdapter extends RecyclerView.Adapter<GridAdapter.GridViewHolder>{
  65. private ViewClickCallBack viewClickCallBack;
  66.  
  67.  
  68.  
  69. private List<Model> models;
  70. public GridAdapter(ViewClickCallBack viewClickCallBack) {
  71. this.viewClickCallBack=viewClickCallBack;
  72. }
  73.  
  74. class GridViewHolder extends RecyclerView.ViewHolder
  75. {
  76. public TextView textView;
  77.  
  78.  
  79. public GridViewHolder(View itemView) {
  80. super(itemView);
  81. textView = (TextView) itemView.findViewById(R.id.text_some);
  82. textView.setOnClickListener(new View.OnClickListener() {
  83. @Override
  84. public void onClick(View v) {
  85. if (viewClickCallBack!=null){
  86. Log.e("Clciked",""+getAdapterPosition());
  87. viewClickCallBack.viewClicked(getAdapterPosition()+1);
  88. }
  89. }
  90. });
  91. }
  92. }
  93.  
  94. @Override
  95. public GridViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  96. View itemView = LayoutInflater.from(parent.getContext())
  97. .inflate(R.layout.grid_view, parent, false);
  98.  
  99. return new GridViewHolder(itemView);
  100. }
  101.  
  102. @Override
  103. public void onBindViewHolder(GridViewHolder holder, int position) {
  104. Model model=getModel(position);
  105. if (model.isUploaded())
  106. {
  107. holder.textView.setText("-");
  108. }else {
  109. holder.textView.setText("+");
  110. }
  111.  
  112. }
  113.  
  114. @Override
  115. public int getItemCount() {
  116. if (models!=null){
  117. return models.size();
  118. }
  119. return 0;
  120. }
  121.  
  122. private Model getModel(int position)
  123. {
  124. if (models!=null){
  125. return models.get(position);
  126. }
  127. return null;
  128. }
  129. public void setModels(List<Model> models) {
  130. this.models = models;
  131. }
  132. }
  133.  
  134. public class Model {
  135. private String imagePath;
  136. private boolean isUploaded;
  137.  
  138. public String getImagePath() {
  139. return imagePath;
  140. }
  141.  
  142. public void setImagePath(String imagePath) {
  143. this.imagePath = imagePath;
  144. }
  145.  
  146. public boolean isUploaded() {
  147. return isUploaded;
  148. }
  149.  
  150. public void setUploaded(boolean uploaded) {
  151. isUploaded = uploaded;
  152. }
  153. }
  154.  
  155. <?xml version="1.0" encoding="utf-8"?>
  156. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  157. android:layout_width="match_parent"
  158. android:layout_height="wrap_content"
  159. android:layout_marginBottom="5dp"
  160. android:layout_marginRight="5dp"
  161. android:background="@drawable/rect_drawable"
  162. android:orientation="vertical">
  163. <ImageView
  164. android:src="@drawable/ic_launcher"
  165. android:id="@+id/image_holder"
  166. android:layout_width="wrap_content"
  167. android:layout_height="wrap_content" />
  168.  
  169. <TextView
  170. android:layout_gravity="right"
  171. android:id="@+id/text_some"
  172. android:layout_margin="10dp"
  173. android:layout_width="wrap_content"
  174. android:layout_height="wrap_content"
  175. android:textSize="25sp"
  176. android:text="+" />
  177. </LinearLayout>
  178.  
  179. <?xml version="1.0" encoding="utf-8"?>
  180. <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
  181.  
  182. <size
  183. android:width="6dp"
  184. android:height="6dp" />
  185. <solid android:color="@color/colorPrimary" />
  186. </shape>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement