設定は次のとおりです。ページがあり、ボタンを含むAと呼びます。Bと呼びます。ユーザーがBをクリックすると、ダイアログが開きます(C)。Cは、作成されたAまたはBについて何も知りません。
現在、ユーザーがBをダブルクリックすると、2つ以上のCが作成されますが、これは望ましくありません。CはBについて何も知らないため、ユーザーがCで[キャンセル]を押すとAに戻りますが、Bは引き続き無効になるため、ボタンを無効にすることはできません。また、ページIDを保存して、Cがそのように作成されるのを制限することもできません。これは、ユーザーがCを開き、[キャンセル]をクリックした後、もう一度Cを開くことにした場合、ユーザーはそれを実行できる必要があるためです。
連続して何回クリックしても、ボタンで複数のダイアログを開くことができないようにするにはどうすればよいですか?
編集
上記の説明では単純化しすぎたので、ここでより詳細に見ていきます。私Toolbar
のクラスには。というボタンがありますreference
。をクリックするreference
と、完全に別のクラスで関数が呼び出されItemPicker
、ダイアログが作成されて表示されますCreateConversation
。ですから、私の元のシナリオに戻ると、BはCについて何も知りません。これは複雑であることに気づきますが、現時点では変更できません。
どういうわけか、それが複数回クリックされ、ダイアログがすでに開かれている場合reference
は、2回目の呼び出しを停止する必要があります。また、クラスにはの特定のインスタンスはありません。静的メソッドです。ItemPicker.createAndShow()
CreateConversation
ItemPicker
Toolbar
createAndShow()