如何将活动中的数据传递给调用活动的dialogFragment?

时间:2012-10-11 13:21:55

标签: android android-dialogfragment

在我的应用程序中,我有一个用户填写的表单。按“保存”数据将保存到本地数据库。我想添加一个确认对话框,供用户在继续之前查看他输入的详细信息,因为这些细节至关重要。

在我的dialogFragment实例中,我会说:“你输入的是这些细节:A,B,C ......你确认了吗?”

A,B,C是调用dialogFragment的活动中的EditText字段的值

如何从dialogFragment中访问这些值?我正在使用:

new ConfirmSaveProjectDetails().show(getFragmentManager(),"Confirm");

在我的活动中。 ConfirmSaveProjectDetails是我的dialogFragment类。

我没有使用Intent,否则我会发送一个Bundle ...

有什么建议吗?

3 个答案:

答案 0 :(得分:30)

您可以以包的形式将参数添加到Fragment中,然后从片段中检索它们。使用Fragment上提供的以下方法:

setArgumentsgetArguments

将它们作为参数传递给Fragments构造函数也始终是一个选项。

答案 1 :(得分:1)

也许不是最漂亮/优雅的方法,但你可以制作那些信息public static,然后从对话框中引用它们。

在您收集数据的活动/片段中:

public static String A
public static String B
public static String C

并在对话框片段中抓住它(如果我正在解释你已经知道的事情,请道歉):

your_activity/fragment_classname.A
your_activity/fragment_classname.B
your_activity/fragment_classname.C

答案 2 :(得分:1)

活动

ImageViewDialogFragment dialogFragment = new ImageViewDialogFragment ();
                        Bundle bundle = new Bundle();
                        bundle.putString("link",moviesList.get(position).getImage());
                        dialogFragment.setArguments(bundle);
                        dialogFragment.show((GalleryReviewActivity.this).getSupportFragmentManager(),"Image Dialog");
DialogFragment

中的

 Bundle bundle = getArguments();
 String imageLink = bundle.getString("link","");