Я поставил четыре флажка. когда я проверяю их истинность, он должен сохраняться в ArrayList. Могу я сохранить их на array list? а также, когда я снимаю выделение с них, они должны быть removed из list или ArrayList. Я реализовал checkboxes, а также одну кнопку выбора всех, чтобы выбрать все checkboxes, и одну кнопку deselect при снятии выделения со всех значений checkboxes, которые должны быть удалены из нее.
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"));
}
}
});
Я не могу разместить здесь свой код.
открытый класс SearchFragment расширяет BaseFragment {String [] name = {"Чикаго", "Лос-Анджелес", "Япония", "Европа"}; TextView tv2; CheckBox abc, a, b, c; общедоступный статический SearchFragment newInstance () {вернуть новый SearchFragment (); }
@Override public View onCreateView (LayoutInflater inflater, контейнер ViewGroup, 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); возвратный вид; }
Отредактируйте свой вопрос и поместите весь свой код в @Shabnam
отредактировал, это мой полный код, ты его видишь
Я ответил на ваш вопрос, пожалуйста, проверьте это
пожалуйста, проверьте, я обновил свой код, я должен сделать вот так.
Use below code to add all of your
checkBoxdata 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 :
Справка :
Код здесь:
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
}
}
});
Я получаю сбой при исключении нулевого указателя на arrayList.clear. java.lang.NullPointerException: попытка вызвать виртуальный метод void java.util.ArrayList.clear () для ссылки на нулевой объект в com.sodick.view.fragments.SearchFragment $ 1.onClick (SearchFra gment.java:96)
Если у вас нет данных в ArrayList и вы хотите очистить список массивов, он покажет вам NullPointErexception. Я сделал отредактировать свой ответ, теперь проверяю.
Кажется, правильно поместить журнал и проверить данные, ArrayList получает данные вашего массива. @ Shabnam
я не получаю данные в журнале. может помочь мне исправить это.
Извините, я забыл создать объект ArrayList, я отредактировал свой ответ, проверьте его и ответьте.
java.lang.NullPointerException: storage == null в java.util.Arrays $ ArrayList. <init> (Arrays.java:38) в java.util.Arrays.asList (Arrays.java:155) в com.sodick.view .fragments.SearchFragment $ 1.onClick (SearchFra gment.java:87)
// или, Добавить данные в ArrayList Вручную использовать эти строки кода и прокомментировать приведенный выше код добавления данных в ArrayList
Добавить полный код: // Добавление данных в список ArrayList arrList = Arrays.asList (name); arrayList.addAll (arrList); arrayList.addAll (Arrays.asList (arr));
Теперь я получаю все флажки. но когда я нажимаю кнопку «Отменить выбор», ничего не отображается.
они все еще отмечены флажками
На самом деле ваша часть else не будет запускать @Shabnam, когда вы кодируете условие if, которое каждый раз будет переходить внутрь if.
пожалуйста, убедитесь, что я обновил новый код. и plases говорят мне, какие изменения я могу сделать.
Я отредактировал свой ответ. Проверить ответ. Использовать Ниже код для выбора и удаления: и ответить.
теперь только один вопрос, как я могу распечатать это в журнале. как я могу увидеть, что мои записи собираются или выбираются в arraylist.
Я отредактировал свой ответ Ниже код для выбора и удаления:, Проверить и ответить
пожалуйста, один вопрос лат. если я хочу установить только 2 флажка, тогда он не отображается в logcat. когда я выбираю все, это отображается в arraylist.
если я установил только два флажка, то он не сохраняется в arraylist
для этого вам нужно добавить код этого флажка. setOn listner @Shabnam, stackoverflow.com/questions/8386832/android-checkbox-listen er
вы пытаетесь получить доступ к списку массивов без его инициализации. Используйте нижеприведенный код
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();
}
}
});
}}
да, он работает, но когда я нажал кнопку «Отменить выбор», он все еще показывает флажки, но ничего не произошло
@Shabnam где функция deselect/Click?
когда 1 раз щелкните tv2, все флажки будут выбраны, когда 2 раза щелкните tv2, все флажки будут сняты
Не могли бы вы опубликовать свой полный код активности