From 66b516c835f3a76a79b47ea48763d0ec287f1ed1 Mon Sep 17 00:00:00 2001
From: Valentin Bout <bout.valentin@gmail.com>
Date: Wed, 19 Oct 2022 17:11:32 +0200
Subject: [PATCH] feat: add destroy button on click on position
---
.../CardRecyclerViewAdapter.java | 71 ++++-------------
.../tp_reclyclerview/CardViewHolder.java | 76 +++++++++++++++++++
.../tp_reclyclerview/MainActivity.java | 7 +-
3 files changed, 93 insertions(+), 61 deletions(-)
create mode 100644 app/src/main/java/com/example/tp_reclyclerview/CardViewHolder.java
diff --git a/app/src/main/java/com/example/tp_reclyclerview/CardRecyclerViewAdapter.java b/app/src/main/java/com/example/tp_reclyclerview/CardRecyclerViewAdapter.java
index 0fc6d30..3a6959a 100644
--- a/app/src/main/java/com/example/tp_reclyclerview/CardRecyclerViewAdapter.java
+++ b/app/src/main/java/com/example/tp_reclyclerview/CardRecyclerViewAdapter.java
@@ -1,85 +1,40 @@
package com.example.tp_reclyclerview;
-import android.media.Image;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;
-public class CardRecyclerViewAdapter extends RecyclerView.Adapter<CardRecyclerViewAdapter.ViewHolder> {
- private String[] localDataSet;
-
- public static class ViewHolder extends RecyclerView.ViewHolder {
- private final TextView textViewPos;
- private final TextView textViewText;
- private final CardView card;
- private final ImageView image;
-
- public ViewHolder(View view) {
- super(view);
-
- textViewPos = (TextView) view.findViewById(R.id.card_pos_tv);
- textViewText = (TextView) view.findViewById(R.id.card_text_info);
-
- card = (CardView) view.findViewById(R.id.cardview);
- image = (ImageView) view.findViewById(R.id.card_image);
-
- card.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Toast.makeText(v.getContext(), "click sur la card " + getAdapterPosition(), Toast.LENGTH_SHORT).show();
- }
- });
-
- image.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Toast.makeText(v.getContext(), "click sur l'image de la card " + getAdapterPosition(), Toast.LENGTH_SHORT).show();
- }
- });
- }
-
- public CardView getCard() {
- return card;
- }
-
- public ImageView getImage() {
- return image;
- }
+import java.util.ArrayList;
- public TextView getTextViewPos() {
- return textViewPos;
- }
+public class CardRecyclerViewAdapter extends RecyclerView.Adapter<CardViewHolder> {
+ public ArrayList<String> localDataSet;
- public TextView getTextViewInfo() {
- return textViewText;
- }
+ public void removeAt(int position) {
+ localDataSet.remove(position);
+ notifyItemRemoved(position);
+ notifyItemRangeChanged(position, localDataSet.size());
}
- public CardRecyclerViewAdapter(String[] data) {
+ public CardRecyclerViewAdapter(ArrayList<String> data) {
localDataSet = data;
}
- public CardRecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
+ public CardViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.card, viewGroup, false);
- return new CardRecyclerViewAdapter.ViewHolder(view);
+ return new CardViewHolder(view, this);
}
@Override
- public void onBindViewHolder(CardRecyclerViewAdapter.ViewHolder viewHolder, final int position) {
+ public void onBindViewHolder(CardViewHolder viewHolder, final int position) {
viewHolder.getTextViewPos().setText("" + position);
- viewHolder.getTextViewInfo().setText(localDataSet[position]);
+ viewHolder.getTextViewInfo().setText(localDataSet.get(position));
}
@Override
public int getItemCount() {
- return localDataSet.length;
+ return localDataSet.size();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/tp_reclyclerview/CardViewHolder.java b/app/src/main/java/com/example/tp_reclyclerview/CardViewHolder.java
new file mode 100644
index 0000000..ae0108c
--- /dev/null
+++ b/app/src/main/java/com/example/tp_reclyclerview/CardViewHolder.java
@@ -0,0 +1,76 @@
+package com.example.tp_reclyclerview;
+
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.cardview.widget.CardView;
+import androidx.recyclerview.widget.RecyclerView;
+
+public class CardViewHolder extends RecyclerView.ViewHolder {
+ private CardRecyclerViewAdapter holder;
+ private TextView textViewPos;
+ private TextView textViewText;
+ private CardView card;
+ private ImageView image;
+ private TextView delete;
+
+ public CardViewHolder(View view, CardRecyclerViewAdapter holder) {
+ super(view);
+ this.holder = holder;
+
+ textViewPos = (TextView) view.findViewById(R.id.card_pos_tv);
+ textViewText = (TextView) view.findViewById(R.id.card_text_info);
+
+ card = (CardView) view.findViewById(R.id.cardview);
+ image = (ImageView) view.findViewById(R.id.card_image);
+ delete = (TextView) view.findViewById(R.id.card_pos_tv);
+
+
+ card.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Toast.makeText(v.getContext(), "click sur la card " + getAdapterPosition(), Toast.LENGTH_SHORT).show();
+ }
+ });
+
+ image.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Toast.makeText(v.getContext(), "click sur l'image de la card " + getAdapterPosition(), Toast.LENGTH_SHORT).show();
+ }
+ });
+
+ delete.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ selfRemove();
+ }
+ });
+ }
+
+ private void selfRemove() {
+ holder.removeAt(getAdapterPosition());
+ }
+
+ public TextView getDelete() {
+ return delete;
+ }
+
+ public CardView getCard() {
+ return card;
+ }
+
+ public ImageView getImage() {
+ return image;
+ }
+
+ public TextView getTextViewPos() {
+ return textViewPos;
+ }
+
+ public TextView getTextViewInfo() {
+ return textViewText;
+ }
+}
diff --git a/app/src/main/java/com/example/tp_reclyclerview/MainActivity.java b/app/src/main/java/com/example/tp_reclyclerview/MainActivity.java
index ccbfba9..55d7ccb 100644
--- a/app/src/main/java/com/example/tp_reclyclerview/MainActivity.java
+++ b/app/src/main/java/com/example/tp_reclyclerview/MainActivity.java
@@ -7,11 +7,12 @@ import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
+import java.util.ArrayList;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
- String[] datas ;
+ ArrayList<String> datas ;
private static int spawnCount = 2;
@Override
@@ -44,9 +45,9 @@ public class MainActivity extends AppCompatActivity {
}
public void genDatas(int number) {
- datas = new String[number];
+ datas = new ArrayList<>();
for(int i = 0; i < number; i++) {
- datas[i] = genRandomStr(number*10);
+ datas.add(genRandomStr(number*10));
}
}
}
\ No newline at end of file
--
GitLab