#android-studio #android-alertdialog #android-checkbox
Вопрос:
ListViewItem:
final AlertDialog.Builder myBuilder = new AlertDialog.Builder(this); final CharSequence[] days = {"All", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; int[] daysId = ActivityDetail.this.mDbHelperPrograms.getAllSelectedDaysByWorkout(Integer.valueOf(ActivityDetail.this.mWorkoutId).intValue()); boolean[] checkedDays = new boolean[8]; int counter = 0; for (int i = 1; i lt; days.length; i ) { for (int j = 0; j lt; daysId.length; j ) if (i == daysId[j]) { checkedDays[i] = true; counter ; break; } } if (counter == 7) checkedDays[0] = true; myBuilder.setTitle("Days").setMultiChoiceItems(days, checkedDays, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialogInterface, int position, boolean isChecked) { ListView list = ((AlertDialog) dialogInterface).getListView(); if (isChecked) { if (position == 0) { for (int i = 1; i lt; days.length; i ) { selectedItems.add(i); } for (int i = 1; i lt; list.getCount(); i ) { list.setItemChecked(i, true); } } else { selectedItems.add(position); } } else { if (position == 0) { selectedItems.clear(); for (int i = 1; i lt; list.getCount(); i ) { list.setItemChecked(i, false); } } else { list.setItemChecked(0, false); list.deferNotifyDataSetChanged(); selectedItems.remove(Integer.valueOf(position)); } }
Сначала выбранное «Все» проверено функционально, когда я снимаю флажок в любой день, то выбранное мной «Все» не снимается. Я хочу реализовать это, когда я уже выбрал какой-либо конкретный день «Все». снят флажок, и все остальные дни будут проверены. У кого-нибудь есть решение сделать это?