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 0fc6d30b1ed88434687c6ba7f698b6a45b00a47f..3a6959a1c68c3a6d26a37e086e25e59875bf901b 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 0000000000000000000000000000000000000000..ae0108c7e26f0fc96c685ddc4100ce8ed5d091bb --- /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 ccbfba976ad6cc227b6f7fab1fc39b35397f0ee6..55d7ccbc9d2834fe9b1680e8705406ea5a3d42ae 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