Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Main3Activity extends AppCompatActivity implements ViewClickCallBack {
- private RecyclerView recyclerView;
- private GridAdapter gridAdapter;
- private List<Model> models = new ArrayList<>();
- private final int SIZE_NEXT_ITEM=5;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main3);
- recyclerView = (RecyclerView) findViewById(R.id.grid_recycle);
- gridAdapter = new GridAdapter(this);
- getNextModel();
- gridAdapter.setModels(models);
- RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(this, 3);
- recyclerView.setLayoutManager(mLayoutManager);
- recyclerView.setAdapter(gridAdapter);
- }
- @Override
- public void viewClicked(int position) {
- models.get(position-1).setUploaded(true);// Need to set as per req.
- int gridItemCount = gridAdapter.getItemCount();
- if ((gridItemCount - position) == 1) {
- getNextModel();
- gridAdapter.setModels(models);
- } else {
- Toast.makeText(this, "Popup Image picker", Toast.LENGTH_SHORT).show();
- }
- gridAdapter.notifyDataSetChanged();
- }
- private void getNextModel() {
- for (int i = 0; i < SIZE_NEXT_ITEM; i++) {
- Model model = new Model();
- model.setUploaded(false);
- models.add(model);
- }
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingBottom="@dimen/activity_vertical_margin"
- android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- tools:context="work.sof.ghost.myapplication.Main3Activity">
- <android.support.v7.widget.RecyclerView
- android:id="@+id/grid_recycle"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
- </RelativeLayout>
- public class GridAdapter extends RecyclerView.Adapter<GridAdapter.GridViewHolder>{
- private ViewClickCallBack viewClickCallBack;
- private List<Model> models;
- public GridAdapter(ViewClickCallBack viewClickCallBack) {
- this.viewClickCallBack=viewClickCallBack;
- }
- class GridViewHolder extends RecyclerView.ViewHolder
- {
- public TextView textView;
- public GridViewHolder(View itemView) {
- super(itemView);
- textView = (TextView) itemView.findViewById(R.id.text_some);
- textView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (viewClickCallBack!=null){
- Log.e("Clciked",""+getAdapterPosition());
- viewClickCallBack.viewClicked(getAdapterPosition()+1);
- }
- }
- });
- }
- }
- @Override
- public GridViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- View itemView = LayoutInflater.from(parent.getContext())
- .inflate(R.layout.grid_view, parent, false);
- return new GridViewHolder(itemView);
- }
- @Override
- public void onBindViewHolder(GridViewHolder holder, int position) {
- Model model=getModel(position);
- if (model.isUploaded())
- {
- holder.textView.setText("-");
- }else {
- holder.textView.setText("+");
- }
- }
- @Override
- public int getItemCount() {
- if (models!=null){
- return models.size();
- }
- return 0;
- }
- private Model getModel(int position)
- {
- if (models!=null){
- return models.get(position);
- }
- return null;
- }
- public void setModels(List<Model> models) {
- this.models = models;
- }
- }
- public class Model {
- private String imagePath;
- private boolean isUploaded;
- public String getImagePath() {
- return imagePath;
- }
- public void setImagePath(String imagePath) {
- this.imagePath = imagePath;
- }
- public boolean isUploaded() {
- return isUploaded;
- }
- public void setUploaded(boolean uploaded) {
- isUploaded = uploaded;
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="5dp"
- android:layout_marginRight="5dp"
- android:background="@drawable/rect_drawable"
- android:orientation="vertical">
- <ImageView
- android:src="@drawable/ic_launcher"
- android:id="@+id/image_holder"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
- <TextView
- android:layout_gravity="right"
- android:id="@+id/text_some"
- android:layout_margin="10dp"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="25sp"
- android:text="+" />
- </LinearLayout>
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
- <size
- android:width="6dp"
- android:height="6dp" />
- <solid android:color="@color/colorPrimary" />
- </shape>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement