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), момент, когда он должен отображаться в списке мгновенно.
Как я мог это сделать?
Заранее спасибо