在Android的碎片/对话框之间的通信对话框、碎片、通信、Android

2023-09-05 11:03:13 作者:自娱自乐自己过

我有两个片段的活性:一个用于表示产品在一个gridview和另一个显示用户添加到顺序(ListFragment)的产品。当用户单击网格视图一个产品,我需要的是显示一个对话框(DialogFragment),其中我问产品的数量通缉。然后,当用户点击接受的对话框中,我希望产品出现在ListFragment。

I have an activity with two fragments: one for showing products in a gridview and the other to show the products that the user adds to the order (ListFragment). When the user clicks a product in the grid view, what I need is to display a dialog (DialogFragment) in which I ask the quantity of product wanted. Then, when the user click accept in the dialog, I want the product to appear in the ListFragment.

在一方面,我有对象产品传递给对话框,以显示它的名称作为对话框的标题(例如)。所以我所做的就是通过这种方式:

On one hand, I have to pass the object product to the dialog in order to show it's name as the dialog's title (for example). So what I did was to pass it this way:

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),然后将其应显示在列表中即刻

I think that it is okey, correct me if I'm wrong. But then, in the onClick event of the positive button I have to retrieve the quantity introduced in the dialog, and then pass it to the other fragment (the ListFragment), and then it should be displayed in the list instantly.

我怎么能这样做呢?

在此先感谢

推荐答案

href="http://android-developers.blogspot.com/2012/05/using-dialogfragments.html">推荐方法的