Android AlertDialog对话框使用(各种样式)

先上几张效果图
Android AlertDialog对话框使用(各种样式)_第1张图片
Android AlertDialog对话框使用(各种样式)_第2张图片
Android AlertDialog对话框使用(各种样式)_第3张图片

Android AlertDialog对话框使用(各种样式)_第4张图片

Android AlertDialog对话框使用(各种样式)_第5张图片

这是XML文件中的控件,只是使用了按钮点击来触发



    

这是Activity中的代码

public class Main3Activity extends AppCompatActivity implements View.OnClickListener {
    private String[] citys = new String[]{"北京", "上海", "深圳", "香港"};
    private AlertDialog d;
    private AlertDialog dialog;
    private Button btn_open_one;
    private Button btn_open_two;
    private Button btn_open_three;
    private Button btn_open_four;
    private Button btn_open_five;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
        initView();
    }
    private void initView() {
        btn_open_one = (Button) findViewById(R.id.btn_open_one);
        btn_open_two = (Button) findViewById(R.id.btn_open_two);
        btn_open_three = (Button) findViewById(R.id.btn_open_three);
        btn_open_four = (Button) findViewById(R.id.btn_open_four);
        btn_open_five = (Button) findViewById(R.id.btn_open_five);

        btn_open_one.setOnClickListener(this);
        btn_open_two.setOnClickListener(this);
        btn_open_three.setOnClickListener(this);
        btn_open_four.setOnClickListener(this);
        btn_open_five.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_open_one:
                //常见的模式
                opendialog();
                break;
            case R.id.btn_open_two:
                //列表对话框
                openlistdialog();
                break;
            case R.id.btn_open_three:
                //单选对话框
                opensingledialog();
                break;
            case R.id.btn_open_four:
                //多选对话框
                muldialog();
                break;
            case R.id.btn_open_five:
                //自定义的
                customDialog();
                break;
        }
    }

    //常见的
    public void opendialog() {
        // 1.创建builder对象
        AlertDialog.Builder builder = new AlertDialog.Builder(Main3Activity.this);

        //设置标题
        builder.setTitle("my first dialog");
        builder.setIcon(R.mipmap.ic_launcher);//设置标题图片
        //设置内容
        builder.setMessage("确定删除吗?");

        //设置按钮   Positive 积极的 正确面
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                // TODO Auto-generated method stub
                Toast.makeText(Main3Activity.this, "ok", Toast.LENGTH_SHORT).show();
            }
        });
        //Negative 消极的
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                // TODO Auto-generated method stub
                Toast.makeText(Main3Activity.this, "cancel", Toast.LENGTH_SHORT).show();
            }
        });

        //Neutral 一般的
        builder.setNeutralButton("一般", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                // TODO Auto-generated method stub
                Toast.makeText(Main3Activity.this, "一般", Toast.LENGTH_SHORT).show();
            }
        });
        //2.调用 builder的create
        AlertDialog dialog = builder.create();
        //3.显示
        dialog.show();

    }

    //列表对话框
    public void openlistdialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setTitle("请选择城市:");
        builder.setItems(citys, new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                // TODO Auto-generated method stub
                Toast.makeText(Main3Activity.this, "当前条目:" + arg1, Toast.LENGTH_SHORT).show();
            }
        });
        //创建,显示
        AlertDialog d = builder.create();
        d.show();

    }

    //单选对话框
    public void opensingledialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("请选择城市:");
        //设置单选  第二个参数是 默认选中项的下标
        builder.setSingleChoiceItems(citys, 0, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                // TODO Auto-generated method stub
                Toast.makeText(Main3Activity.this, "当前条目:" + arg1, Toast.LENGTH_SHORT).show();
                //d.dismiss();//关闭对话框
            }
        });
        //创建显示
        d = builder.create();
        d.show();

    }

    //多选对话框
    public void muldialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("请选择城市:");
        //设置多选
        builder.setMultiChoiceItems(citys, new boolean[]{true, true, true, true}, new DialogInterface.OnMultiChoiceClickListener() {

            @Override
            public void onClick(DialogInterface arg0, int arg1, boolean arg2) {
                // TODO Auto-generated method stub

            }
        });
        //创建,显示
        d = builder.create();
        d.show();
    }

    //自定义的
    public void customDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        //加载布局
        View contentView = View.inflate(this, R.layout.dialog, null);
        //查找控件
        final EditText etName = (EditText) contentView.findViewById(R.id.et_name);
        final EditText etPwd = (EditText) contentView.findViewById(R.id.et_pwd);
        Button btnOk = (Button) contentView.findViewById(R.id.btn_ok);
        Button btnCancle = (Button) contentView.findViewById(R.id.btn_cancle);

        btnOk.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                String name = etName.getText().toString();
                String pwd = etPwd.getText().toString();

                if (name.equals("") || pwd.equals("")) {
                    Toast.makeText(Main3Activity.this, "用户名或密码不能为空。", Toast.LENGTH_SHORT).show();
                } else {
                    Intent intent = new Intent(Main3Activity.this, Main2Activity.class);
                    startActivity(intent);
                    //关闭对话框
                    dialog.dismiss();
                }
            }
        });
        btnCancle.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                //关闭对话框
                dialog.dismiss();
            }
        });
        //设置内容
        builder.setView(contentView);
        //创建
        dialog = builder.create();
        //显示
        dialog.show();
    }
}

这是自定义的Dialog的XML文件



    

        

        
    

    

        

            

            
        

        

            

            
        


        

            

你可能感兴趣的:(弹窗应用)