0

アクティビティ1から、アクティビティ2を開きます。アクティビティ2の画面が表示されているときに、アクティビティ1のイベントを受け取り、そのイベントを受信すると、ダイアログを表示します。どうやってやるの??アクティビティ2にいる間はダイアログが表示されませんが、アクティビティ1に戻るとダイアログが表示されます。

アクティビティ2の画面にいるときでもダイアログを表示したいのですが、このリンクも調べましたが 、他の実行中のアクティビティ(Android)の上にダイアログを表示するのはあまり役に立ちませんでしたか? reqdイベントを受信すると、このメソッドを呼び出します。

4

2 に答える 2

0

最初のアクティビティ(splashScreen)で、この関数を記述してアラートボックスを作成します

public static void MyAlertBox(String title, String mymessage,  Context context)
{
new AlertDialog.Builder(context)
   .setMessage(mymessage)
   .setTitle(title)
   .setCancelable(false)
   .setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
        .
        }
    })
   .show();
}

グローバル検証可能を宣言します:

public static Activity currentActivity= null;

すべてのアクティビティで:onResume()write "currentActivity = this;"

アラートを表示したい場合は、次のように記述します:(アクティビティ1)

SplashScreen.MyAlertBox("Alert",
            "Alert box from activity 1",currentActivity );

それがあなたのために働くことを願っています!!

于 2012-07-20T11:00:56.757 に答える
0

まず、アクティビティ2で個別のダイアログを作成し、以下で説明します

  1. アクティビティ1に関連するデータを受信したら、ブロードキャストを送信してみてください。
  2. ブロードキャストをリッスンするReceiverクラスを作成します
  3. ここで、オブザーバーデザインパターンを使用する必要があります。つまり、Receiverクラスにイベントがあると、データが到着したことをアクティビティBに通知し、適切なダイアログを表示します。

成功しなかった場合は、結果を共有してください。

于 2012-07-20T11:14:06.610 に答える