如何从另一个类显示alertdialog并在当前活动(Android)中处理它

时间:2013-09-24 14:10:52

标签: android android-alertdialog android-notifications

我正在发送某些事件的通知,如果应用处于后台,则通过通知通知用户,如果用户位于前景,则通过警报通知用户。现在我想知道如何从我的通知类显示警告对话框,并在当前活动中处理对话框

请指导我这个。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:4)

这将通过向其他活动发送上下文来实现

public class Message {

 public static void alert_msg(Context context, String title, String message) {
    AlertDialog alertDialog = new AlertDialog.Builder(context).create();

    // Set Dialog Title
    alertDialog.setTitle(title);

    // Set Dialog Message
    alertDialog.setMessage(message);


    // Set OK Button
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {

        }
    });

    // Show Alert Message
    alertDialog.show();
 }
}

使用此

调用
  Message.alert_msg(MainActivity.this,"Title","Your Message Here"); 

答案 1 :(得分:1)

您需要设置一个Intent和一个广播接收器。这将允许您通过通知活动进行广播和意图,如果您的应用位于前台,则应用中配置的广播接收器可以拾取并显示对话框。

http://developer.android.com/reference/android/content/BroadcastReceiver.html http://www.vogella.com/articles/AndroidBroadcastReceiver/article.html

答案 2 :(得分:0)

- >通过在参数中传递DialogInterface.OnClickListener()对象并在Activity类

中实现它
AlertDialogs alertdialog;

    alertdialog.SingleSelectDialog("title",otherParameters,new DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                          int x=alertdialog.getAmount();

                        }
                    });

- >在类AlertDialogs

        public void SingleSelectWithImage(String head,otherParameters, DialogInterface.OnClickListener pressok) {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context, R.style.MyDialogTheme);
        dialogBuilder.setTitle(head);

              amount=bla_bla;    
               //do anything
        dialogBuilder.setPositiveButton("ok", pressok);
        dialogBuilder.setNegativeButton("Cancel", null);
        dialogBuilder.show();        

}

- > getter方法

 public int getAmount() {
        return amount;
    }