Я пытаюсь использовать диалог, который показывает ArrayList, используя multiChoiceItems. Я хочу проверить, какие элементы я хочу удалить, нажмите кнопку, чтобы удалить/закрыть диалоговое окно и удалить элементы при следующем открытии диалогового окна.Извлечение элементов из диалогового интерфейса multiChoiceItems не работает
Когда я отлаживаю код ниже, я нахожу, что я просматриваю цикл для каждого выбранного элемента, но ни один из элементов не удаляется. Я чувствую, что мне не хватает чего-то, возможно, довольно тривиального здесь, и я бы очень хотел помочь!
Я знаю, что я должен учитывать изменения индексов, если я удаляю несколько элементов, поэтому не беспокойтесь об этом. Я сделаю это после того, как я смогу удалить первый элемент самостоятельно!
Большое спасибо!
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Title");
mSelectedItems.clear();
builder.setMultiChoiceItems(myList,null,
new DialogInterface.OnMultiChoiceClickListener(){
@Override
public void onClick(DialogInterface dialog,int which, boolean isChecked){
if (isChecked) {
// If the user checked the item, add it to the selected items
mSelectedItems.add(which);
} else if (mSelectedItems.contains(which)) {
// Else, if the item is already in the array, remove it
mSelectedItems.remove(Integer.valueOf(which));
}
}
});
builder.setPositiveButton("Remove from list", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
for(int i=0;i<mSelectedItems.size();i++){
arrayChoices.remove(mSelectedItems.get(i));
}
myList = arrayChoices.toArray(new CharSequence[arrayChoices.size()]);
}
});
builder.setNegativeButton("End", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
Я могу удалить элементы, если я укажу индекс напрямую. Пример: arrayChoices.remove (0). Поэтому я предполагаю, что это может не признать мой аргумент remove как целое число, но я не уверен, почему это не так. Кто-нибудь получил объяснение? – lhbortho