2014-07-26 40 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) { 

     } 
    });