【问题标题】:AlertDialog.Builder helper class cannot resolve constructorAlertDialog.Builder 助手类无法解析构造函数
【发布时间】:2017-04-03 07:13:24
【问题描述】:

我已经构建了一个帮助类来存储各种 AlertDialog 类型。我认为这会很有帮助,这样我就可以在代码中的任何地方调用它们。不幸的是,我在new AlertDialog.Builder() 收到错误消息。它说Cannot resolve constructor `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();
    }

【问题讨论】:

    标签: java android android-alertdialog helper


    【解决方案1】:

    你应该像这样在构造函数中传递一个上下文:

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

    来自您的活动:

    alertDialogHelper.showAboutDialog(this);
    

    现在:

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

    【讨论】:

      【解决方案2】:

      我是这样做的:

      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();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-29
        • 1970-01-01
        • 2015-05-05
        • 2017-02-28
        • 2016-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多