Итак, теперь у меня есть настраиваемый адаптер списка, который добавляет еще одну строку, когда пользователь выбирает элемент. Дело в том, что каждый элемент в строке должен иметь кнопку изменения, где они могут выбрать любую модификацию (можно выбрать более одной модификации)Добавить изменения к каждому элементу списка избранного
Это приложение для заказа продуктов питания, которое, когда товар выбран, должна быть другая кнопка в списке с надписью «Изменить», где появляется всплывающее окно и позволяет пользователю выбирать, какую модификацию он хочет, используя флажок. («Меньше соли», «Больше соуса» и т. Д.). Каждый список изменений одинаковый для каждого блюда. Когда пользователь выходит из всплывающего окна и нажимает на ту же кнопку изменения, проверенные флажки должны оставаться там.
Первоначально я создал класс Popup, где, когда выбрана кнопка, есть намерение перейти к этой всплывающей активности, но я не смог найти связь между пользовательским адаптером и активностью Popup. Я также попытался использовать AlertDialog, чтобы заменить всплывающее окно, но не смог найти способ сохранить все отмеченные элементы и показать, какие из них были выбраны ранее.
Вот мой код
modifyBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Modification");
final CharSequence[] modify_items = orderClass.getModifyList()
.toArray(new CharSequence[orderClass.getModifyList().size()]);
builder.setMultiChoiceItems(modify_items, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int indexSelected, boolean isChecked) {
if(isChecked){
selectedList.add(indexSelected);
selectedItems.set(position, selectedList);
}
else if(selectedList.contains(indexSelected)){
selectedList.remove(Integer.valueOf(indexSelected));
selectedItems.set(position, selectedList);
}
}
})
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog dialog = builder.create();
dialog.show();
Log.d("dialog", "Showing dialog");
}
});
return view;
}