Java Class
MainActivityFragment.java
public class MainActivityFragment extends Fragment { ArrayList<Number> numbers; private RecyclerView list; private Button btnGetSelected; public MainActivityFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_main, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); btnGetSelected = (Button) view.findViewById(R.id.btnGetSelected); list = (RecyclerView) view.findViewById(R.id.list); list.setLayoutManager(new LinearLayoutManager(getActivity())); list.setHasFixedSize(true); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); numbers = new ArrayList<>(); String Ones[] = {"12th","10th", "Graduction", "Post Graduction", "Diploma", "ITI", "BE", "B Tech", "M tech", "MCA", "MBA", "MCA", "BSC", "MSC", "BA", "MA", "B.COM", "M.COM"}; for (int i = 0; i <= 17; i++) { Number number = new Number(); number.setTextONEs(Ones[i]); this.numbers.add(number); } NumbersAdapter adapter = new NumbersAdapter(this.numbers); list.setAdapter(adapter); btnGetSelected.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { StringBuilder stringBuilder = new StringBuilder(); for (Number number : numbers) { if (number.isSelected()) { if (stringBuilder.length() > 0) stringBuilder.append(", "); stringBuilder.append(number.getTextOnes()); } } Toast.makeText(getActivity(), stringBuilder.toString(), Toast.LENGTH_LONG).show(); } }); } }
Bean Class
public class Number { private String textONEs; private boolean isSelected; public String getTextOnes() { return textONEs; } public void setTextONEs(String textONEs) { this.textONEs = textONEs; } public boolean isSelected() { return isSelected; } public void setSelected(boolean selected) { isSelected = selected; } }Adapter Classpublic class NumbersAdapter extends RecyclerView.Adapter<NumbersAdapter.ViewHolder> { ArrayList<Number> numbers; public NumbersAdapter(List<Number> numbers) { this.numbers = new ArrayList<>(numbers); } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.client_list_item, parent, false); return new ViewHolder(v); } @Override public void onBindViewHolder(final ViewHolder holder, int position) { holder.bindData(numbers.get(position)); holder.checkbox.setOnCheckedChangeListener(null); holder.checkbox.setChecked(numbers.get(position).isSelected()); holder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { numbers.get(holder.getAdapterPosition()).setSelected(isChecked); } });// Check Box Select Methodholder.parentLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { holder.checkbox.performClick(); } });} @Override public int getItemCount() { return numbers.size(); } public static class ViewHolder extends RecyclerView.ViewHolder { private TextView textName; private CheckBox checkbox; private LinearLayout lRootLayout,parentLayout; public ViewHolder(View v) { super(v); textName = (TextView) v.findViewById(R.id.textName); checkbox = (CheckBox) v.findViewById(R.id.checkbox); lRootLayout=(LinearLayout) v.findViewById(R.id.lRootLayout); parentLayout=(LinearLayout) v.findViewById(R.id.parentLayout); } public void bindData(Number number) { textName.setText(number.getTextOnes()); } } }Main XML<LinearLayout 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" android:orientation="vertical" tools:context="com.guna.recyclerviewwithcheckbox.MainActivityFragment" tools:showIn="@layout/activity_main"> <android.support.v7.widget.RecyclerView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="0.9" android:scrollbars="vertical" /> <Button android:id="@+id/btnGetSelected" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="0.1" android:text="GET SELECTED" /> </LinearLayout>adb.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/lRootLayout" android:layout_width="match_parent" android:layout_marginBottom="5dp" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout android:id="@+id/parentLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="5dp"> <TextView android:id="@+id/textName" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:textColor="@android:color/black" /> <CheckBox android:id="@+id/checkbox" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight=".2" /> </LinearLayout> </LinearLayout>
No comments:
Post a Comment