1

ユーザーが (コンテキスト メニューを使用して) ファイルの削除を要求した後、DialogFragment がトリガーされ、ユーザーに確認を求めます。ユーザーが確認すると、呼び出し元のアクティビティによってファイルが削除されます。

これを行うには、少なくとも 2 つの方法があります。

  1. DialogFragment は、アクティビティのメソッドである deleteFile() を呼び出します。これ自体は、getActivity() を介してアクセスできます。
  2. Activity は DeleteFile インターフェイスを実装します。DialogFragment は、Uri を設定し、リスナーをアクティビティになるように初期化し、メッセージをリスナーに送信します。安全性を高めるために、onAttach() は、Activity が必要なインターフェースを実装していることを確認します。

ドキュメントは、少なくとも一般的には、2 番目のオプションが優れていることを示唆しています。ただし、この場合、最初のアプローチは、ユーザーがいつローテーションをトリガーしたかに関係なく、完全に堅牢に見えます (アクティビティと DialogFragment の両方をリセットします)。

最初のアプローチは完全に適切ですか、それとも 2 番目のアプローチをより良くするローテーション以外のシナリオはありますか。

4

2 に答える 2