2

カスタムXMLを使用してダイアログを表示する場合は、DialogFragmentを使用できます。DialogFragmentと対話をテーマにした対話?

しかし、アクティビティを代わりに使用してダイアログテーマを付けることもできます。これは、アクティビティが互いに話すことができ、フラグメントは通信できないため、通信が簡単になります。

私はこのようにしてはならない理由がありますか?長所と短所は何ですか?

答えて

1

DialogFragmentは、複雑なダイアログを表示するAndroidの方法と考えられています。あなたが持っている唯一の問題がアクティビティやダイアログからの断片化と通信している場合、いくつかの簡単な解決策があります。それらの1つ - あなたがインターフェイスを使用することができますフラグメントからのアクティビティへの応答を送信する。また、DialogFragmentの表示は、新しいアクティビティを起動するよりも高速です。 DialogFragmentのもう1つの利点は、フラグメントからアクティビティーへのデータの受け渡しがアクティビティーからアクティビティーへの操作より簡単であることです(これは、オブジェクトをインテント・エクストラとして配置する必要があります)。

1

カスタムXMLを使用してダイアログを表示する場合は、 DialogFragmentを使用できます。

はい、私たちは、カスタムレイアウトを定義するためのonCreateView DialogFragment.onCreateViewの()テンプレートメソッドのコールバック()でレイアウトを定義することができます。

しかし、私はまた、代わりに活動を使用し、それに通信を少し簡単になり活動が フラグメントができないのに対し、お互いに話すことができるので便利ですダイアログテーマ、 を与えることができます。

  1. はい、あなたはそれが ダイアログのように表示させるために活動のためにそれらと同じに設定することができます。
  2. お互いに通信するための2つのアクティビティ(A & B)の場合は、 startActivityForResult(Intent intent, int reqCode)メソッド start Activity B from Activity Aを使用する必要があります。 Activity Bが完了したら Activity AsetResult(int reqCode, Intent intent)の方法で結果を渡す必要があります。
  3. アクティビティとフラグメント通信では、Interfaceを実装する必要があり、通信との比較では非常に簡単です。 とActivitesの間です。詳細はlinkに従ってください。
  4. 同じアクティビティにあるFragmentの2つは、Interfaceを経由して、それぞれ 以外と容易に通信できます。詳細は上記リンクをご確認ください。 Tablet UIについては、実装を実現するためにフラグメントを使用する必要があります。 を管理し、モジュール化してください。

私はこのようにしてはならない理由はありますか?長所と短所は何ですか?

  1. あなたが活動駆動開発に固執する場合は、タブレットに同じ コードベースを移植することは非常に困難です。
  2. small-small機能のフラグメントを使用すると、コードベースがモジュール化されます。
  3. 双方向通信は 破壊し、Activity Aにその結果を通過するActivity B通信Activity AからActivity Bについて

  4. "Fragment & Activity"間と "Fragment & Fragment via Activity"が可能です。

  5. Activity.startActivityForResult()には独自の利点があります。カメラで画像をキャプチャする場合は、Implicit Intentを使用してカメラActivityを起動し、画像をキャプチャしたら画像のURIをsetResult(int reqCode, Intent intent)に戻して、onActivityResult()という呼び出しアクティビティが呼び出され、画像のURIの詳細を確認できるようになります。

+0

「同じアクティビティの2つのフラグメントは、インターフェイス経由で簡単に通信できます」アクティビティ - >フラグメント - >フラグメントの場合は、なぜなら、フラグメントからインプリメンテーションの詳細を抜き出してアクティビティに入れなければならないからです。 – KaliMa

+0

@Kalima:ケースアクティビティ - >フラグメント - >フラグメントについて話しています。この場合、2番目のフラグメントは必須ですネストされるFragment1のFragment mean child。アクティビティから2番目のフラグメントと直接通信する必要はありません。フラグメント1にイベントを渡してから、フラグメント1は、イベントをフラグメント2に渡します。詳細は以下のリンクをご確認ください。 http://stackoverflow.com/questions/14831690/inter-fragment-communication-applied-to-nested-fragments –