mercredi 21 mars 2018

how to save the values of checkboxes in arraylist

I have made one recyclerview.in recyclerview i have n number of checkboxes and one select all button is there on which it select all the checkboxes become true. i have done this. now i just want save the values pf checkboxes in arraylist on when the state is true and on deselect it become clear from arraylist.and on selectall button all the checkboxes store in arraylist. how can i do this .

  public class SearchFragment extends BaseFragment {

ArrayList<String> arrayList = new ArrayList<>();
public TextView tv2;
public RecyclerView rvList;
Context context;
public static SearchFragment newInstance () {
    return new SearchFragment();
}

@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container,
                          Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_search, container, false);
    tv2=(TextView) view.findViewById(R.id.tv2);



    rvList=(RecyclerView)view.findViewById(R.id.rvList);
    arrayList = new ArrayList<>();
    for (int i = 0; i < 10; i++){
        arrayList.add("Produk " + i);


    }

    LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());


    rvList.setLayoutManager(layoutManager);


    MyAdapter mAdapter = new MyAdapter(getContext(),arrayList);


    // 4. set adapter
    rvList.setAdapter(mAdapter);
    // 5. set item animator to DefaultAnimator
    rvList.setItemAnimator(new DefaultItemAnimator());


    return view;
   }

   @Override
   public void onViewCreated (View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    ButterKnife.bind(this, view);


    tv2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            MyAdapter mAdapter = new MyAdapter(getContext(),arrayList);

            rvList.setAdapter(mAdapter);

            if(AppContants.CheckFlag){
                AppContants.CheckFlag=false;
                //arrayList.addAll(arrayList);

            }
            else{
                AppContants.CheckFlag=true;
                //arrayList.clear();
            }

     mAdapter.notifyDataSetChanged();

        }
    });



   public class  MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

    private HashMap<Integer, Boolean> isChecked = new HashMap<>();
    private Context mContext;
    private LayoutInflater inflater;
    CheckBox cbProduk;

    ArrayList<String> arrayList = new ArrayList<>();

    public MyAdapter(Context context, List<String> arrayList){
        this.mContext = context;
        this.arrayList = (ArrayList<String>) arrayList;
        inflater = LayoutInflater.from(context);
    }


    @Override
    public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View rootView = inflater.inflate(R.layout.list_item_produt, parent, false);

        MyViewHolder holder = new MyViewHolder(rootView);
        cbProduk=(CheckBox)rootView.findViewById(R.id.cbProduk);
        return holder;
    }


    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        holder.cbProduk.setText(arrayList.get(position));


        if (AppContants.CheckFlag) {
           holder.cbProduk.setChecked(true);


        } else  {
            holder. cbProduk.setChecked(false);
        }
        MyAdapter mAdapter = new MyAdapter(getContext(),arrayList);

        holder.cbProduk.setText(arrayListCheckedItems.get(position));
        if (AppContants.CheckFlag) {
            holder.cbProduk.setChecked(true);


        } else  {
            holder. cbProduk.setChecked(false);
        }


    }

    @Override
    public int getItemCount() {
        return arrayList.size();
    }

    public void NotifyDatasetchanged() {

    }

    public class MyViewHolder extends RecyclerView.ViewHolder {

        CheckBox cbProduk;

        public MyViewHolder(View itemView) {
            super(itemView);

            cbProduk = (CheckBox) itemView.findViewById(R.id.cbProduk);

            cbProduk.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    if (isChecked){
                        cbProduk.setChecked(true);


                        Toast.makeText(mContext, "checklist", Toast.LENGTH_SHORT).show();
                    } else {
                        cbProduk.setChecked(false);

                        Toast.makeText(mContext, "unchecklist", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    }
      }

     }




Aucun commentaire:

Enregistrer un commentaire