私のアプリケーションには、ユーザーが入力するフォームがあります。「保存」を押すと、データがローカルデータベースに保存されます。先に進む前に、ユーザーが入力した詳細を確認するための確認ダイアログを追加したいと思います。これらの詳細は非常に重要だからです。
私のdialogFragmentインスタンスでは、「次の詳細を入力しています:A、B、C ...確認しますか?」のようになります。
A、B、Cは、dialogFragmentを呼び出すアクティビティのEditTextフィールドの値です。
DialogFragmentからこれらの値にアクセスするにはどうすればよいですか?私は使っている:
new ConfirmSaveProjectDetails().show(getFragmentManager(),"Confirm");
私の活動で。 ConfirmSaveProjectDetails
は私のdialogFragmentクラスです。
インテントを使用していません。使用していない場合は、バンドルを送信します...
なにか提案を?
バンドルの形式で引数をフラグメントに追加してから、フラグメントから引数を取得できます。 Fragment で使用可能な次のメソッドを使用します。
setArguments
およびgetArguments
。
それらを引数としてFragmentsコンストラクターに渡すことも常にオプションです。
おそらく最もきれいでエレガントな方法ではありませんが、それらの情報を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
あなたの中で活動
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","");