web-dev-qa-db-ja.com

アクティビティからそのアクティビティが呼び出したdialogFragmentにデータを渡すにはどうすればよいですか?

私のアプリケーションには、ユーザーが入力するフォームがあります。「保存」を押すと、データがローカルデータベースに保存されます。先に進む前に、ユーザーが入力した詳細を確認するための確認ダイアログを追加したいと思います。これらの詳細は非常に重要だからです。

私のdialogFragmentインスタンスでは、「次の詳細を入力しています:A、B、C ...確認しますか?」のようになります。

A、B、Cは、dialogFragmentを呼び出すアクティビティのEditTextフィールドの値です。

DialogFragmentからこれらの値にアクセスするにはどうすればよいですか?私は使っている:

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

私の活動で。 ConfirmSaveProjectDetailsは私のdialogFragmentクラスです。

インテントを使用していません。使用していない場合は、バンドルを送信します...

なにか提案を?

16
Mirko

バンドルの形式で引数をフラグメントに追加してから、フラグメントから引数を取得できます。 Fragment で使用可能な次のメソッドを使用します。

setArgumentsおよびgetArguments

それらを引数としてFragmentsコンストラクターに渡すことも常にオプションです。

30
PJL

おそらく最もきれいでエレガントな方法ではありませんが、それらの情報を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
1
Barak

あなたの中で活動

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","");
1
Arpit Patel