Screen Shots:
Step 1:
create new project and open activity_main.xml file and copy the below code
Step 2:
open build.gradle(app) file and sync below libraries
Step 3:
Create Model.java model class and take itemName, and isSelected properties like below.
Step 4:
Open MainActivity.java class file and follow the below code
Step 5:
create a layout file for list item row_item.xml like below
Step 6:
create ModelAdapter.java file copy the below code
Download Source Code:
Step 1:
create new project and open activity_main.xml file and copy the below code
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/cameraContainer" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:orientation="horizontal"> <CheckBox android:id="@+id/chk_select_all" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="1" android:text="Select All" android:textSize="22dp" /> <Button android:id="@+id/btn_delete_all" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_margin="10dp" android:layout_weight="1" android:background="@color/colorPrimary" android:paddingLeft="15dp" android:paddingRight="15dp" android:text="Delete All" android:textAllCaps="false" android:textColor="#ffffff" android:textSize="18dp" /> </LinearLayout> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="none" /> </LinearLayout>
Step 2:
open build.gradle(app) file and sync below libraries
compile 'com.android.support:cardview-v7:25.1.0' compile 'com.android.support:recyclerview-v7:25.1.0' compile 'com.android.support:design:25.1.0'
Step 3:
Create Model.java model class and take itemName, and isSelected properties like below.
package com.prasad.selectrecyclerviewitems; import java.io.Serializable; public class Model implements Serializable { private String itemName; private boolean isSelected; public Model(String itemName, boolean isSelected) { this.itemName = itemName; this.isSelected = isSelected; } public String getItemName() { return itemName; } public void setItemName(String itemName) { this.itemName = itemName; } public boolean isSelected() { return isSelected; } public void setSelected(boolean selected) { isSelected = selected; } }
Step 4:
Open MainActivity.java class file and follow the below code
package com.prasad.selectrecyclerviewitems; import android.os.Bundle; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; private CheckBox chk_select_all; private Button btn_delete_all; private ArrayList<Model> item_list = new ArrayList<>(); private ModelAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initControls(); } private void initControls() { recyclerView = (RecyclerView) findViewById(R.id.recycler_view); chk_select_all = (CheckBox) findViewById(R.id.chk_select_all); btn_delete_all = (Button) findViewById(R.id.btn_delete_all); item_list.add(new Model("Alpha", false)); item_list.add(new Model("Beta", false)); item_list.add(new Model("Cup Cake", false)); item_list.add(new Model("Donut", false)); item_list.add(new Model("Eclair", false)); item_list.add(new Model("Froyo", false)); item_list.add(new Model("Ginger Bread", false)); item_list.add(new Model("Honycomb", false)); item_list.add(new Model("Icecream Sandwhich", false)); item_list.add(new Model("Jelly Bean", false)); item_list.add(new Model("Kitkat", false)); item_list.add(new Model("Lolly Pop", false)); item_list.add(new Model("Marsh Mallow", false)); item_list.add(new Model("Nougat", false)); recyclerView.setHasFixedSize(true); recyclerView.setLayoutManager(new LinearLayoutManager(this)); mAdapter = new ModelAdapter(item_list); recyclerView.setAdapter(mAdapter); chk_select_all.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (chk_select_all.isChecked()) { for (Model model : item_list) { model.setSelected(true); } } else { for (Model model : item_list) { model.setSelected(false); } } mAdapter.notifyDataSetChanged(); } }); btn_delete_all.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (chk_select_all.isChecked()) { item_list.clear(); mAdapter.notifyDataSetChanged(); chk_select_all.setChecked(false); } else { Snackbar.make(v, "Please click on select all check box, to delete all items.", Snackbar.LENGTH_LONG).show(); } } }); } }
Step 5:
create a layout file for list item row_item.xml like below
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="75dp" android:layout_margin="5dp" android:orientation="horizontal" card_view:cardCornerRadius="5dp" card_view:cardUseCompatPadding="true"> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="horizontal"> <CheckBox android:id="@+id/chk_selected" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" /> <TextView android:id="@+id/txt_Name" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_toLeftOf="@+id/chk_selected" android:layout_weight="1" android:padding="10dp" android:text="Item Name" android:textColor="@color/black" android:textSize="16dp" /> <ImageButton android:id="@+id/btn_delete_unit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:background="@null" android:src="@drawable/ic_clear_black_24dp" /> </LinearLayout> </RelativeLayout> </android.support.v7.widget.CardView>
Step 6:
create ModelAdapter.java file copy the below code
package com.prasad.selectrecyclerviewitems; import android.app.AlertDialog; import android.content.DialogInterface; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.ImageButton; import android.widget.TextView; import java.util.ArrayList; public class ModelAdapter extends RecyclerView.Adapter<ModelAdapter.ViewHolder> { public ArrayList<Model> item_list; public ModelAdapter(ArrayList<Model> arrayList) { item_list = arrayList; } @Override public ModelAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // create a new view View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_item, null); // create ViewHolder ViewHolder viewHolder = new ViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(ModelAdapter.ViewHolder holder, int position) { final int pos = position; holder.item_name.setText(item_list.get(position).getItemName()); holder.chkSelected.setChecked(item_list.get(position).isSelected()); holder.chkSelected.setTag(item_list.get(position)); holder.chkSelected.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { CheckBox cb = (CheckBox) v; Model model = (Model) cb.getTag(); model.setSelected(cb.isChecked()); item_list.get(pos).setSelected(cb.isChecked()); } }); holder.btn_delete.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { deleteItemFromList(v, pos); } }); } @Override public int getItemCount() { return item_list.size(); } // confirmation dialog box to delete an unit private void deleteItemFromList(View v, final int position) { AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext()); //builder.setTitle("Dlete "); builder.setMessage("Delete Item ?") .setCancelable(false) .setPositiveButton("CONFIRM", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { item_list.remove(position); notifyDataSetChanged(); } }) .setNegativeButton("CANCEL", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { } }); builder.show(); } public static class ViewHolder extends RecyclerView.ViewHolder { public TextView item_name; public ImageButton btn_delete; public CheckBox chkSelected; public ViewHolder(View itemLayoutView) { super(itemLayoutView); item_name = (TextView) itemLayoutView.findViewById(R.id.txt_Name); btn_delete = (ImageButton) itemLayoutView.findViewById(R.id.btn_delete_unit); chkSelected = (CheckBox) itemLayoutView.findViewById(R.id.chk_selected); } } }
Finaly Thank You so Much. Easy Understandable.
ReplyDeleteThank you very much it was so help full.
ReplyDeletehow to delete single item
ReplyDeleteits working thank you so much....
ReplyDeleteWhat if we have to delete those items that are checked by the user??
ReplyDeletenot all and not single but only those that are checked by the user..
Looking forward for your kind response.
thank you very much
ReplyDeleteI have been stucked with checkbox states problem. Finally got it. Thank you bro. I would recommend this post and this post https://androidride.com/recyclerview-android-simple-tutorial-adapter-differences-listview-checkbox-example/ all the beginners having checkbox state problem.
ReplyDeletecool
ReplyDeletethanks dear ,this example saves a lot of time for me ,actually i am stucked with the checkbox selected chosen problem in the list and that example helps me lot and i got my solution thanks a lot ....
ReplyDeleteCompre documentos en línea, documentos originales y registrados.
ReplyDeleteAcerca de Permisodeespana, algunos dicen que somos los solucionadores de problemas, mientras que otros se refieren a nosotros como vendedores de soluciones. Contamos con cientos de clientes satisfechos a nivel mundial. Hacemos documentos falsos autorizados y aprobados como Permiso de Residencia Español, DNI, Pasaporte Español y Licencia de Conducir Española. Somos los fabricantes y proveedores de primer nivel de estos documentos, reconocidos a nivel mundial.
Comprar permiso de residencia,
permiso de residenciareal y falso en línea,
Compre licencia de conducir en línea,
Compre una licencia de conducir española falsa en línea,
Comprar tarjeta de identificación,
Licencia de conducir real y falsa,
Compre pasaporte real en línea,
Visit Here fpr more information. :- https://permisodeespana.com/licencia-de-conducir-espanola/
Address: 56 Guild Street, London, EC4A 3WU (UK)
Email: contact@permisodeespana.com
WhatsApp: +443455280186
Lucky Club Casino Site: A List of all Casinos
ReplyDeleteThe Lucky luckyclub.live Club Casino site is the most exciting casino website. With an easy integration, you can experience it at any of our more established casinos