我有一个包含两个Fragment的活动:一个用于以网格视图显示产品,另一个用于显示用户添加到订单中的产品(ListFragment)。当用户在网格视图中点击一个产品时,我需要显示一个对话框(DialogFragment),以询问所需产品的数量。然后,当用户在对话框中点击“接受”时,我希望产品出现在ListFragment中。
一方面,我必须将产品对象传递给对话框,以便将其名称作为对话框的标题显示(例如)。因此,我这样做:
我认为这是可以的,如果我错误请纠正。但是,在正按钮的onClick事件中,我需要检索对话框中输入的数量,并将其传递到其他片段(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),此时它应该立即显示在列表中。
我应该如何做呢?
提前致谢。
(DialogFragment)
和Activity(Main)
之间的通信。请查看类似问题的以下讨论: https://dev59.com/22Ml5IYBdhLWcg3wP08a - Edward Quixote