3

class の特定のボタンをクリックすると、MainActivityいくつかのフラグメントのダイアログが表示されますFragDialog

FragDialog cf = new FragDialog().newInstace();

cf.show(getSupportFragmentManager(), "dialog");

ハードウェアの戻るボタンが押されたとき、またはアクティビティMainActivityがフォーカスされたときに、ダイアログが閉じられ、アクティビティに戻りましたMainActivity

onResume()ダイアログを閉じた後、onAttach()アクティビティのメソッドMainActivityが呼び出されません。

MainActivityダイアログフラグメントで選択されたフィールドに従って変更されたビューを取得するために、ダイアログが閉じた後にアクティビティを更新するという考え方ですFragDialog

ドキュメントDialogFragmentで述べたように、

// DialogFragment.show() will take care of adding the fragment
// in a transaction.  We also want to remove any currently showing
// dialog, so make our own transaction and take care of that here.

remove()しかし、それが呼び出されないため、追加は無意味に思えます。ダイアログがなくても閉じられます。

これが呼び出されたら、MainActivityもう一度アクティビティを開始して変更を反映できるのではないかと考えました。

4

1 に答える 1

1

ダイアログを呼び出している間、アクティビティのcontrxtを失うことはなく、非アクティブな状態にはなりません。ダイアログが閉じられたときにイベントをアクティビティにするだけで、ボタンでキャンセルすれば非常に簡単です。次に、ビューを定期的に変更します。

ダイアログに関する素晴らしい記事は次のとおりです http://developer.android.com/guide/topics/ui/dialogs.html

于 2013-09-19T12:37:53.820 に答える