Android Studio中的警报对话框代码错误

时间:2018-09-20 22:57:35

标签: android

我试图在android studio中制作警报对话框,但它给了我一个奇怪的错误

  

AlertDialog.Builder a_builder =新的AlertDialog()。Builder(this);

AlertDialog()方法the error上 而且我不知道原因

java代码

package com.example.amr.alertdialog;

import android.content.DialogInterface;
import android.net.Uri;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class MainActivity extends AppCompatActivity
{
    private static  Button btn_alert;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        onButtonClickListener();
    }
    public void onButtonClickListener()
    {
        btn_alert=(Button)findViewById(R.id.button);
        btn_alert.setOnClickListener(
                new View.OnClickListener()
                {
                    @Override
                    public void onClick(View v)
                    {
                      AlertDialog.Builder a_builder = new AlertDialog().Builder(this);
                        a_builder.setMessage("you click alert").setCancelable(false).
                              setPositiveButton("yes", new DialogInterface.OnClickListener()
                              {
                                  @Override
                                  public void onClick(DialogInterface dialog, int which)
                                  {
                                      finish();

                                  }
                              })
                              .setNegativeButton("No", new DialogInterface.OnClickListener()
                              {
                                  @Override
                                  public void onClick(DialogInterface dialog, int which)
                                  {
                                      dialog.cancel();

                                  }
                              });
                        AlertDialog alert = a_builder.create();
                        alert.setTitle("LALALALALALALA");
                        alert.show();


                    }
                }
        );
    }
}

2 个答案:

答案 0 :(得分:0)

Builder是AlertDialog的子类,而不是成员变量。

您需要使用

new AlertDialog.Builder(this);

答案 1 :(得分:0)

The Wanderer的答案是正确的!您真正需要做的就是更改:

AlertDialog.Builder a_builder = new AlertDialog().Builder(this);

AlertDialog.Builder a_builder = new AlertDialog.Builder(this);

但是,您可能需要考虑提取创建并显示AlertDialog的代码,并将其放入单独的方法中。这样,您可以重复使用代码,并且代码将更易于阅读和调试。

public void onButtonClickListener()
{
    btn_alert=(Button)findViewById(R.id.button);
    btn_alert.setOnClickListener(
            new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    showAlertDialog("LALALALALALALA", "you click alert")
                }
            }
    );
}

现在添加用于创建和显示AlertDialog的代码:

private void showAlertDialog(String title, String message){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(title);
    builder.setMessage(message);
    builder.setCancelable(true);
    builder.setPositiveButton(
            "Yes",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
                }
            });

    builder.setNegativeButton(
            "No",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.cancel();
                }
            });

    AlertDialog alert = builder.create();
    alert.show();
}