Balwinder Singh
Balwinder Singh

Reputation: 125

how to save all check boxes values in arraylist or shareprefrence

I have made four check boxes. when I check them true it should save in ArrayList. Can I save them to the array list? and also when I deselect them they should be removed from the list or ArrayList.i have implemented the checkboxes and also one select all button to select all checkboxes and one deselect button on deselect all the values of checkboxes should be removed from it.


My code is

public class SearchFragment extends BaseFragment {
private static final String TAG = null;
String[] name={ "Chicago", "Los Angeles", "Japan", "Europe"};
Object arr;
ArrayList<String> arrayList = new ArrayList<>();
TextView tv2
CheckBox abc,abc1,a,b,c;
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);


    abc=(CheckBox) view.findViewById(R.id.abc);
    a=(CheckBox) view.findViewById(R.id.a);
    b=(CheckBox) view.findViewById(R.id.b);
    c=(CheckBox) view.findViewById(R.id.c);

    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) {
            String value=tv2.getText().toString().trim();
            if (value.equals("Select all")){
                abc.setChecked(true);
                a.setChecked(true);
                b.setChecked(true);
                c.setChecked(true);
                tv2.setText("UnSelect all");
                arrayList.addAll(Arrays.asList(name));
                Log.e("SELECTED","SELECTED "+arrayList.size());
            }
            else {
                abc.setChecked(false);
                b.setChecked(false);
                a.setChecked(false);
                c.setChecked(false);

                tv2.setText("Select all");
                if (arrayList.size() != 0) {
                    arrayList.clear();

                }
                Log.e("NOT_SELECTED","NOT_SELECTED");
            }
       }
    });
    abc.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked){
                arrayList.addAll(Arrays.asList("Chicago"));
            }

        }
    });

Upvotes: 0

Views: 663

Answers (2)

Abhishek kumar
Abhishek kumar

Reputation: 4445

Use below code to add all of your checkBox data to ArrayList :

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

tv2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String value=tv2.getText().toString().trim();
        if (value.equals("Select all")){
            abc.setChecked(true);
            a.setChecked(true);
            b.setChecked(true);
            c.setChecked(true);
            tv2.setText("Select all");


           //Adding data to ArrayList
           List arrList = Arrays.asList(name);
           arrayList.addAll(arrList);
           arrayList.addAll(Arrays.asList(arr));

           //or, Add data into ArrayList Manually
           arrayList.add("Chicago");
           arrayList.add("Los Angeles");
           arrayList.add("Japan");
           arrayList.add("Europe");

        }
        else {
            abc.setChecked(false);
            b.setChecked(false);
            a.setChecked(false);
            c.setChecked(false);

            tv2.setText("Select all");

            //Clear Data from ArrayList
            if(arrayList.size()!=0){
                 arrayList.clear
             }
        }

   }
});

Use Below code to Select & Remove :

tv2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String value=tv2.getText().toString().trim();
        if (value.equals("Select all")){
            abc.setChecked(true);
            a.setChecked(true);
            b.setChecked(true);
            c.setChecked(true);
            tv2.setText("Remove all");
            arrayList.addAll(Arrays.asList(name));
            Log.e("SELECTED","SELECTED "+arrayList.size());
        }
        else {
            abc.setChecked(false);
            b.setChecked(false);
            a.setChecked(false);
            c.setChecked(false);

            tv2.setText("Select all");
            if (arrayList.size() != 0) {
                arrayList.clear();
            }
           Log.e("NOT_SELECTED","NOT_SELECTED");
        }
   }
});

Add Single Item As below :

Reference :

Code here :

abc.setOnClickListener(new OnClickListener() {

  @Override
  public void onClick(View v) {
            //is chkIos checked?
    if (((CheckBox) v).isChecked()) {
                    arrayList.add("Chicago");
    }
    else 
      // removes Chicago by arrayList Position
      //to avoid runtime exception
                    if(arrayList.contain("Chicago")){
                    arrayList.remove(0);
                    }else{
                   // do your stuff
                      }

  }
});

Upvotes: 1

KMI
KMI

Reputation: 258

you are trying to access arrayList without initializing it. Use below code

public class SearchFragment extends BaseFragment {
String[] name={ "Chicago", "Los Angeles", "Japan", "Europe"};
Object arr;
ArrayList<String> arrayList = new ArrayList<>();
TextView tv2,tv3,tv4,tv5,tv6,tv7;
CheckBox 
abc,abc1,a,b,c,abc2,abc3,abc4,a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4;
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);


abc=(CheckBox) view.findViewById(R.id.abc);
a=(CheckBox) view.findViewById(R.id.a);
b=(CheckBox) view.findViewById(R.id.b);
c=(CheckBox) view.findViewById(R.id.c);

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) {
        String value=tv2.getText().toString().trim();
        if (value.equals("Select all")){
            abc.setChecked(true);
            a.setChecked(true);
            b.setChecked(true);
            c.setChecked(true);
            tv2.setText("Clear All");

            arrayList.addAll(Arrays.asList(name));



        }
        else {
            abc.setChecked(false);
            b.setChecked(false);
            a.setChecked(false);
            c.setChecked(false);

            tv2.setText("Select all");
            arrayList.clear();
        }
   }
});
}}

Upvotes: 1

Related Questions