2016-11-19 6 views
0

Я создал вспомогательный класс для хранения различных типов AlertDialog. Я думал, что это будет полезно, чтобы я мог назвать их где угодно в моем коде. К сожалению, я получаю ошибку ниже по адресу new AlertDialog.Builder(). Он говорит Cannot resolve constructor `Builder(). Как я могу заставить это работать?Класс помощника AlertDialog.Builder не может разрешить конструктор

public class AlertDialogHelper { 

    public void showAboutDialog() { 
     AlertDialog.Builder builder = new AlertDialog.Builder(); 
     builder.setTitle(R.string.about); 
     builder.setMessage("A weather app made by Martin Erlic") 
       .setCancelable(false) 
       .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         // Ok 
        } 
       }); 
     AlertDialog alert = builder.create(); 
     alert.show(); 
    } 

} 

В моей деятельности:

private void showAboutAlertDialog() { 
     AlertDialogHelper alertDialogHelper = new AlertDialogHelper(); 
     alertDialogHelper.showAboutDialog(); 
    } 

ответ

1

Вы должны пройти контекст в конструкторе, как это:

AlertDialog.Builder builder = new AlertDialog.Builder(context); 

От вашей деятельности:

alertDialogHelper.showAboutDialog(this); 

Сейчас:

public void showAboutDialog(Context context) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(context); 
     .... 
0

Я сделал это так:

public class AlertDialogHelper { 

    public static Dialog CreateDialog(Context mContext) { 

     AlertDialog.Builder builder = new AlertDialog.Builder(mContext); 
     builder.setTitle(R.string.about); 
     builder.setMessage("A weather app made by Martin Erlic") 
       .setCancelable(false) 
       .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         // Ok 
        } 
       }); 
     return builder.create(); 
    } 
} 

В моей деятельности:

AlertDialogHelper.CreateDialog(this).show(); 
Смежные вопросы