2011-06-27 10 views
4

私はうまく表示されているカスタムダイアログを持っていますが、アクティビティのfinishメソッドが表示された直後に呼び出されるので、すぐに閉じられます。以前は、トーストメッセージを使用していましたが、これは同じ状況にとどまる問題はありませんでした。アクティビティが完了したら、CustomDialogをどのように保持しますか?

Toastメッセージと違って、カスタムダイアログがアクティビティに「所属している」という問題があるので、アクティビティがなくなるとダイアログも消えてしまいます。私はsetOnShowListenerでリスナーを追加することを考えていましたが、リスナーが何らかの理由で仕上げをブロックしない限り、それはうまくいくとは思いません。私はタイマーの遅延を追加することができますが、それは非常に魅力的な解決策ではありません。ここで良い解決策は何ですか?

+0

しかし、なぜ活動が終了していますか?はい、あなたはダイアログとしてアクティビティを表示することができますが、代わりに 'finish'を避けることができない理由を疑問に思っています。 – PJL

+0

それは問題です - 私はダイアログの表示の後にfinishを呼び出しています。 –

+0

もう一度、他の答えに応じて、他の答えやテーマに応じて 'finish'をダイアログとして呼び出す必要があります。 – PJL

答えて

2

他のアクティビティをダイアログとして表示する方が良いと思います。

は単に、ダイアログとして表示されるべき新しい活動にこれを追加し

<activity android:theme="@android:style/Theme.Translucent"> 
+2

または 'Theme.Dialog' –

+0

yup。ダグに感謝します。または dcanh121

+0

を使用してください。はい、これが望ましいです。標準アクティビティapisを使用することができ、ダイアログのロジックをアクティビティにカプセル化します。ありがとう。 –

関連する問題