Связь между фрагментами/диалогами в android

I есть активность с двумя фрагментами: один для отображения продуктов в виде сетки, а другой для отображения продуктов, которые пользователь добавляет в заказ (ListFragment).Когда пользователь щелкает продукт в представлении сетки, мне нужно отображать диалоговое окно (Dialo gFragment), в котором я запрашиваю желаемое количество товара. Затем, когда пользователь нажимает «Принять» в диалоговом окне, я хочу, чтобы продукт отображался в ListFragment.

С одной стороны, я должен передать объект продукта в диалоговое окно, чтобы отобразить его имя в качестве заголовка диалогового окна (например). Поэтому я передал это следующим образом:

public static class ProductDialog extends DialogFragment {

        static ProductDialog newInstance(ProductVO product) {
            ProductDialog f = new ProductDialog();

            Bundle args = new Bundle();
            args.putSerializable("product", product);
            f.setArguments(args);

            return f;
        }

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            ProductVO product = (ProductVO) getArguments().getSerializable("product");

            return new AlertDialog.Builder(getActivity())
                    .setIcon(R.drawable.ic_dialog_add)
                    .setTitle(R.string.add_product)

                    ...

                    .setPositiveButton(R.string.accept,
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton) {

                            }
                        }
                    )
                    .setNegativeButton(R.string.cancel,
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton) {
                            }
                        }
                    )
                    .create();
        }
    }

Я думаю, что это нормально, пожалуйста, поправьте меня, если я ошибаюсь. Но затем, в событии onClick положительной кнопки, я должен получить количество, введенное в диалоговом окне, и передать его другому фрагменту (ListFragment), момент, когда он должен отображаться в списке мгновенно.

Как я мог это сделать?

Заранее спасибо

7
задан olistic 20 October 2018 в 01:58
поделиться