I have a DialogFragment with a RecyclerView where i can click some items, that items have to be added to the "Parent" item from the Activity and i have other 4 buttons which do different stuff in that Dialog.
How can i manage the clicks from RecyclerView and from Buttons in my Activity?
Like my Dialog looks like this:
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());
final Comanda prodotto = (Comanda) getArguments().getSerializable("PRODOTTO");
final int menuSelezionato = getArguments().getInt("ACTIVE_MENU");
List<Varianti> variantiAggiunte = prodotto.getVarianti();
DataBaseHandler dbContext = DataBaseHandler.getInstance(requireActivity());
ArrayList<VariantiBinding> variantiList = dbContext.getVarianti();
ArrayList<VariantiBinding> variantiFilteredList = selectVariantiByMenu(variantiList, menuSelezionato);
AdapterVariantiAggiunte adapterVariantiAggiunte = aggiunteRecycler(recyclerVariantiAdded, variantiAggiunte);
AdapterVarianti adapterVarianti = variantiRecycler(recyclerVarianti, variantiFilteredList);
title.setText(prodotto.getDescrizione());
builder.setView(view);
adapterVarianti.setOnItemClickListener(positionVariante -> {
search.clearFocus();
VariantiBinding varianteSelezionata = adapterVarianti.getList().get(positionVariante);
Varianti variante = getVariante(varianteSelezionata);
if (variante != null) {
//adapterComanda.addVariante(variante); adapterComanda is in Activity
adapterVariantiAggiunte.notifyItemInserted(adapterVariantiAggiunte.getItemCount() - 1);
recyclerVariantiAdded.scrollToPosition(adapterVariantiAggiunte.getItemCount() - 1);
}
});
return builder.create();
}
I have to handle the adapterVarianti click in both VariantiDialog and in My Activity, for now only the click in Dialog is handled but like i need to get something like a callback in my Activity and call:
adapterComanda.addVariante(variante);
Before all that was at the same level but i had all my AlertDialogs in my Activity and i'm moving them to DialogFragment.