Reputation: 125
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
Reputation: 4445
Use below code to add all of your
checkBox
data toArrayList
:
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
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