2012-03-29 14 views
0

私はアンドロイドアプリケーション用に構築したカスタムダイアログクラスをいくつか使っています。これらのダイアログクラスの1つが呼び出されるとダイアログが表示され、ユーザーはダイアログ内でウィジェットを変更し、ダイアログが閉じられるとその変更が呼び出しアクティビティに反映されます。Androidでダイアログを操作する

私はこの機能を実現するためにいくつかの回避策を開発しました...しかし、私はきちんとしたコードが好きで、私が試したすべての回避策は私にとって魅力的ではありません(静的変数、return文など)。 )。だから私はおそらく、私の活動のOnResumeまたはReStartメソッドにいくつかのステートメントを入れて、必要な作業を行うことができると考えました。私はダイアログを閉じると何も起こりません。そのため、アクティビティのライフサイクルのOverRideメソッドは、ダイアログが閉じられたときに呼び出されるとは考えていません(ダイアログが開始されたときに初めてOnPauseが呼び出されたとしても)。

私はAndoid docsを見て、自分のカスタムダイアログクラスでダイアログをインターフェイスでき、そこにさまざまなメソッドを使用/上書きできることを読んだ。それはちょうど私の意見で飛行機を殺すために大砲のように思える(特に私は準備が整っているので、機能はちゃんと機能する)。

基本的には、ダイアログを呼び出したアクティビティを再起動するために、どのメソッドが(ダイアログまたはダイアログを開始したアクティビティから)呼び出されたのだろうかと思っていました。 < - その文は私には意味がありません...私はダイアグラムで説明しましょう(完全に必要であれば擬似コードを与えることができますが、それがもう助けになるかはわかりません)

コールアクティビティ - >(呼び出し元のアクティビティが何らかの方法でグレー表示になります) - >ダイアログ表示 - >すばやく - ダイアログが閉じられます - >(呼び出し元のアクティビティが何らかの方法で再開します)

2つの方法上記はかっこ内にありますが、それは何ですか? (後者は特に私の興味に関係します)あなたの時間をありがとう。

答えて

0

バックグラウンドを灰色化する方法は完全にはわかりませんが、OnDismissListener、OnCancelListener、OnShowListener(APIレベル8が必要です)に関連するコードを実装して配置できるリスナーがいくつかあります。

例(他のリスナーに対して同じ構文)

Dialog d = new Dialog(this); 
    d.setOnCancelListener(new DialogInterface.OnCancelListener() { 

     @Override 
     public void onCancel(DialogInterface dialog) { 
      // do stuff 

     } 
    }); 
関連する問題