【发布时间】:2021-12-16 15:31:44
【问题描述】:
我有一个带有 RecyclerView 的 DialogFragment,我可以在其中单击一些项目,这些项目必须从 Activity 添加到“父”项目,并且我还有其他 4 个按钮在该对话框中执行不同的操作。
如何管理来自 RecyclerView 和 Activity 中按钮的点击?
就像我的对话框是这样的:
@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();
}
我必须在 VariantiDialog 和 My Activity 中处理adapterVarianti 点击,现在只处理 Dialog 中的点击,但就像我需要在我的 Activity 中获得回调之类的东西并调用:
adapterComanda.addVariante(variante);
在所有这些都处于同一级别之前,但我的所有 AlertDialogs 都在我的 Activity 中,我正在将它们移动到 DialogFragment。
【问题讨论】:
标签: android