2

私は GWT のアクティビティと場所について理解を深めようとしています。また、特定の機能を実装する方法がわかりません。

ここで、私も MVP を使用しており、アクティビティがプレゼンターであると仮定しましょう。

顧客のリストを表示するアクティビティ (アクティビティ A と呼びましょう) (およびそれに対応するビュー) があるとします。ユーザーはビューで「顧客の作成」ボタンをクリックできます。

私がやりたいことはこれです:ユーザーがボタンをクリックしたときに、現在のアクティビティの上に「顧客の作成」ダイアログがポップアップするようにします。また、このダイアログに関連するすべてのロジックを分離して、後で再利用できるようにしたいと考えています。

たとえば、同じダイアログを「請求書の作成」アクティビティで再利用できます。したがって、ユーザーは「請求書の作成」アクティビティで同様の「顧客の作成」ボタンをクリックすると、以前に使用したものと同じダイアログが表示されます。

今、私がそれを正しく理解していれば、現在のアクティビティ「顧客のリスト」または「請求書の作成」を終了するため、新しい場所に goTo() したくありません。

「CreateCustomerPresenter」と「CreateCustomerDialog」(対応するビュー) を定義し、「顧客のリスト」/「請求書の作成」アクティビティ (リマインダー: 彼らは私のプレゼンターでもあります) を「CreateCustomerPresenter」に拡張することを考えました。 、しかし、それが賢明な考えかどうかはわかりません...

アクティビティのコンテキストでダイアログに関連付けられたロジックとビューを再利用するための推奨される方法は何ですか?

4

2 に答える 2

2

いくつかの有効なアプローチがありますが、私が通常好むのは、ダイアログを場所 (アクティビティ) としてまったく扱わないことです。

理由: 場所とは、ブックマークやブラウザの履歴からアクセスできることを意味します。私が顧客リストにいて、「顧客の編集」をクリックすると、ダイアログが開きます。ブラウザの戻るボタンをクリックしたときにリストに「戻る」必要がありますか? また、ブラウザの進むボタンをクリックすると、ダイアログが再び開きますか? 私はそれを疑っており、ユーザーはブラウザのボタンを使用してアプリ内の「ページ」全体を前後に移動したいと考えています (つまり、ユーザーがページのように感じる概念) が、ページ内のダイアログを開いたり閉じたりすることは望んでいません。 .

于 2013-12-12T21:54:41.843 に答える
1

私はまさにこれを最近やりました。

私がとったアプローチは、ダイアログのコンテンツに対して通常の方法でアクティビティ/ビューを作成することでした。起動するには、アクティビティ/ビューを作成してダイアログに埋め込みます。これをサブ アクティビティと呼びました。モーダル ダイアログを作成し、ダイアログ コンテンツをパネルとして渡すサブアクティビティで start を呼び出します。メインアクティビティでは、mayStop、stop などをサブアクティビティにリダイレクトしました。

注意が必要な部分は、ダイアログを閉じて制御をメイン アクティビティに戻す処理でした。最終的に、ダイアログにリスナーを追加し、メインのアクティビティをピックアップしたイベント バスでイベントを発生させました。私はこれに 100% 満足しているわけではありませんが、うまくいきます。

私はそれを使用していませんが、GWTPはこれをサポートし、すぐに使用できるサブアクティビティを作成する他の方法をサポートしていると思います。

于 2013-12-12T16:30:25.010 に答える