2014-07-26 45 views
0

我想为我的一些活动创建一个“全局”警报对话框。我的意思是我创建了一个扩展为Activity的类,它也为带有两个参数(消息和标题)的警报对话框创建了一个函数。如何创建全局警报对话框

public class MyDialogAlert extends Activity { 

public void createDialog(String title, String message) 
{ 
    new AlertDialog.Builder(this) 
    .setTitle(title) 
    .setMessage(message) 
    .setPositiveButton("yes", new OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 
      //(e.g) open another activity 
     } 
    }) 
    .setNegativeButton("no", new OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 
      //some stuff .. 
     } 
    }) 
    .show(); 
} 

}

我如何可以调用不同的活动,这个功能并改变它`消极和积极的按钮进行其他操作比在上面的类最初定义?

感谢您的帮助:)

+0

sperate类您可以为此行为创建一个自定义对话框类。一项活动是矫枉过正的。将参数传递给对话框构造函数并基于参数构造对话框 –

+0

您必须至少接受一个'DialogInterface.OnClickListener'作为该方法的参数,并使用这些来代替'new OnClickListener'匿名内部类。但是,正如@IllegalArgument提到的那样,这有点矫枉过正。而且,这样做基本上否定了对话框构建器提供的灵活性。 – Karakuri

+0

好的,谢谢你们! :) – user3775739

回答

3

您可以创建具有静态方法显示在任何活动

public class DialogCaller { 

public static void showDialog(Context context,String title,String message, 
     DialogInterface.OnClickListener onClickListener) { 

    AlertDialog.Builder dialog = new AlertDialog.Builder(context); 
    dialog.setTitle(title); 
    dialog.setMessage(message); 
    dialog.setPositiveButton("Ok",onClickListener); 
    dialog.setNegativeButton("Cancel",null); 
    dialog.show(); 
} 
} 

对话框,并调用该方法会是这样

DialogCaller.showDialog(this,"title","message",new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 

     } 
    });