Android的警示对话框AlertDialog简单使用实例(附Demo)


目录

AlertDialog默认样式 

单选样式的AlertDialog:

AlertDialog多选样式:

AlertDialog自定义样式:

自定义Dialog:


Demo地址:https://github.com/zGuangYuan/Androidstudio_example    


Alertlog简介:Alertlog可以在当前的界面弹出一个对话框,而且这个对话框是至于所有颜色之上,能够屏蔽其他的控件的显示,Alertlog一般用于提示一些重要的内容或者信息。


  • 默认样式

  • 单选样式

  • 多选样式

  • 自定义样式

  • 自定义Dialog


AlertDialog默认样式 

例子:

新建一个包,名为:Alertdialog

Android的警示对话框AlertDialog简单使用实例(附Demo)_第1张图片

Android的警示对话框AlertDialog简单使用实例(附Demo)_第2张图片

在Alertdialog这个包里新建一个Empty Activity,命名为:DiaglogActivity.

Android的警示对话框AlertDialog简单使用实例(附Demo)_第3张图片

Android的警示对话框AlertDialog简单使用实例(附Demo)_第4张图片

在默认的Activity(MainActivity)设置一个按钮可以跳转到DiaglogActivity中,并为这个按钮绑定监听器:

在布局文件添加一个控件

Android的警示对话框AlertDialog简单使用实例(附Demo)_第5张图片

在MainActivity获取控件对象,绑定监听器:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第6张图片

Android的警示对话框AlertDialog简单使用实例(附Demo)_第7张图片

Android的警示对话框AlertDialog简单使用实例(附Demo)_第8张图片

整体代码,出了这个按钮,别的可以不用管:

package com.example.yuan.e06_gridview;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.example.yuan.e06_gridview.Alertdialog.DiaglogActivity;
import com.example.yuan.e06_gridview.GridView.GridViewActivity;
import com.example.yuan.e06_gridview.ListView.ListViewActivity;
import com.example.yuan.e05_listview.R;
import com.example.yuan.e06_gridview.RecycleView.RecycleViewActivity;
import com.example.yuan.e06_gridview.Toast.ToastActivity;
import com.example.yuan.e06_gridview.WebView.WebViewActivity;


public class MainActivity extends AppCompatActivity {
    //声明引用
    private Button mIVButton;
    private Button mLVButton;
    private Button mGVButton;
    private Button mRVButton;
    private Button mWVButton;
    private Button mToastButton,mDiaglogButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取控件对象
        mIVButton=(Button) findViewById(R.id.IVButton_Id);
        mLVButton=(Button) findViewById(R.id.LVButton_Id);
        mGVButton=(Button) findViewById(R.id.GVButton_Id);
        mRVButton=(Button) findViewById(R.id.RVButton_Id);
        mWVButton=(Button) findViewById(R.id.WVButton_Id);
        mToastButton=(Button)findViewById(R.id.ToastButton_Id);
        mDiaglogButton=(Button) findViewById(R.id.DiaglogButton_Id);
        setlistener();
    }
    //设置监听器
    public void setlistener(){
        ButtonClickListener listener =new ButtonClickListener();
        mLVButton.setOnClickListener(listener);
        mIVButton.setOnClickListener(listener);
        mGVButton.setOnClickListener(listener);
        mRVButton.setOnClickListener(listener);
        mWVButton.setOnClickListener(listener);
        mToastButton.setOnClickListener(listener);
        mDiaglogButton.setOnClickListener(listener);
    }
    //实现监听器接口
    class ButtonClickListener implements OnClickListener{
        @Override
        public void onClick(View v) {
            Intent intent = null;
            switch (v.getId()){
                case R.id.ToastButton_Id:
                    intent = new Intent(MainActivity.this, ToastActivity.class);
                    break;
                case R.id.GVButton_Id:
                    intent=new Intent(MainActivity.this, GridViewActivity.class);
                    break;
                case R.id.IVButton_Id:
                    intent = new Intent(MainActivity.this,ImageViewActivity.class);
                    break;
                case R.id.LVButton_Id:
                    intent =new Intent(MainActivity.this, ListViewActivity.class);
                    break;
                case R.id.RVButton_Id:
                    intent = new Intent(MainActivity.this, RecycleViewActivity.class);
                    break;
                case R.id.WVButton_Id:
                    intent =new Intent(MainActivity.this, WebViewActivity.class);
                    break;
                    //跳转到Diaglog演示界面
                case R.id.DiaglogButton_Id:
                    intent = new Intent(MainActivity.this, DiaglogActivity.class);
            }
            startActivity(intent);
        }
    }
}

现在开始正式编写AlertDialog的代码:

回到activity_dialog这个布局文件中,设置几个按钮用于显示不同的Diaglog的样式:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第9张图片

整体代码:



    

在DiagActivity获取这些按钮的控件实例,并为其绑定监听器:

先看看一看默认的Diaglog是怎样的,在样式一按钮的响应事件添加一个Diaglog:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第10张图片

整体代码:

package com.example.yuan.e06_gridview.Alertdialog;

import android.annotation.SuppressLint;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.example.yuan.e05_listview.R;

public class DiaglogActivity extends AppCompatActivity {
    //声明引用
    private Button mDialogButton1,mDialogButton2,mDialogButton3,mDialogButton4;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_diaglog);
        //获取控件对象
        mDialogButton1 = (Button)findViewById(R.id.DG_Button_Id1);
        mDialogButton2 = (Button) findViewById(R.id.DG_Button_Id2);
        mDialogButton3 = (Button) findViewById(R.id.DG_Button_Id3);
        mDialogButton4 = (Button) findViewById(R.id.DG_Button_Id4);
        //生成监听器对象,绑定监听器
        DiaglogClickListener listener = new DiaglogClickListener();
        mDialogButton1.setOnClickListener(listener);
        mDialogButton2.setOnClickListener(listener);
        mDialogButton3.setOnClickListener(listener);
        mDialogButton4.setOnClickListener(listener);
    }
    //设置按键的监听器类
    class DiaglogClickListener implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.DG_Button_Id1:
                    //采用AlertDialog的设计者模式
                    AlertDialog.Builder bulider = new AlertDialog.Builder(DiaglogActivity.this);
                    //设置标题
                    bulider.setTitle("请回答问题");
                    //设置提示信息
                    bulider.setMessage("你觉得今天天气怎么样?");
                    //设置属性
                    bulider.setPositiveButton("很好", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(getApplicationContext(),"天气很好",Toast.LENGTH_LONG).show();
                        }
                    })
                            .setNeutralButton("一般", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    Toast.makeText(getApplicationContext(),"天气一般",Toast.LENGTH_LONG).show();
                                }
                            }).setNegativeButton("糟糕", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(getApplicationContext(),"天气糟糕",Toast.LENGTH_LONG).show();
                        }
                    }).show();
                    break;
                case R.id.DG_Button_Id2:

                    break;
                case R.id.DG_Button_Id3:

                    break;
                case R.id.DG_Button_Id4:

                    break;
            }
        }
    }
}

运行应用程序:

点击样式一按钮:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第11张图片

出现一个弹窗,旁边的背景色变暗:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第12张图片

选择三个的选项,都会有一个Toast的弹窗:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第13张图片

同样也可以为这个Dialog设置一个图标:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第14张图片

现在再次运行程序,就可以看到这个图标了:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第15张图片


单选样式的AlertDialog:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第16张图片

运行应用程序:

选择样式二:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第17张图片

弹出一个Dialog:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第18张图片

选择之后会有一个Toast的弹窗:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第19张图片


 可以看到上面的单选按钮还是比较简单的,RadioButton,还有显示按钮的状态呢?这个AlertDialog同样也可以做到

注意:checkedItem表示默认选中的选项,0,表示默认选中第一个,也就是男

Android的警示对话框AlertDialog简单使用实例(附Demo)_第20张图片

运行应用程序:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第21张图片

这样就像ReadioButton一样的样式了。

Android的警示对话框AlertDialog简单使用实例(附Demo)_第22张图片

 现在发现我们选择之后,这个AlertDialog仍然是存在的,除非点击旁边暗灰色部分和Back按钮时,这个对话框才会消失。

如果我们想让点击想之后就让对话框就消失怎么做呢?

Android的警示对话框AlertDialog简单使用实例(附Demo)_第23张图片

运行应用程序:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第24张图片

选中男或者女之后,弹窗,这个对话框消失:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第25张图片


AlertDialog多选样式:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第26张图片

运行应用程序:

点击样式四:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第27张图片

默认选中一个唱歌选项:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第28张图片

选择选项也会出现弹窗:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第29张图片

总体代码:

package com.example.yuan.e06_gridview.Alertdialog;

import android.annotation.SuppressLint;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.example.yuan.e05_listview.R;
import com.example.yuan.e06_gridview.util.ToastUtil;

public class DiaglogActivity extends AppCompatActivity {
    //声明引用
    private Button mDialogButton1,mDialogButton2,mDialogButton3,mDialogButton4;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_diaglog);
        //获取控件对象
        mDialogButton1 = (Button)findViewById(R.id.DG_Button_Id1);
        mDialogButton2 = (Button) findViewById(R.id.DG_Button_Id2);
        mDialogButton3 = (Button) findViewById(R.id.DG_Button_Id3);
        mDialogButton4 = (Button) findViewById(R.id.DG_Button_Id4);
        //生成监听器对象,绑定监听器
        DiaglogClickListener listener = new DiaglogClickListener();
        mDialogButton1.setOnClickListener(listener);
        mDialogButton2.setOnClickListener(listener);
        mDialogButton3.setOnClickListener(listener);
        mDialogButton4.setOnClickListener(listener);
    }
    //设置按键的监听器类
    class DiaglogClickListener implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.DG_Button_Id1:
                    //采用AlertDialog的设计者模式
                    AlertDialog.Builder bulider = new AlertDialog.Builder(DiaglogActivity.this);
                    //设置标题
                    bulider.setTitle("请回答问题");
                    //设置提示信息
                    bulider.setMessage("你觉得今天天气怎么样?");
                    //设置图标
                    bulider.setIcon(R.drawable.toast1);
                    //设置属性
                    bulider.setPositiveButton("很好", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(getApplicationContext(),"天气很好",Toast.LENGTH_LONG).show();
                        }
                    })
                            .setNeutralButton("一般", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    Toast.makeText(getApplicationContext(),"天气一般",Toast.LENGTH_LONG).show();
                                }
                            }).setNegativeButton("糟糕", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(getApplicationContext(),"天气糟糕",Toast.LENGTH_LONG).show();
                        }
                    }).show();
                    break;
                case R.id.DG_Button_Id2:
                    final String [] array = new String[]{"男","女"};
                    AlertDialog.Builder bulier1 = new AlertDialog.Builder(DiaglogActivity.this);
                    bulier1.setTitle("选择你的性别").setItems(array, new DialogInterface.OnClickListener() {
                        @Override
                        //witch是数组的索引,从0开始
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(getApplicationContext(),array[which],Toast.LENGTH_LONG).show();
                        }
                    }).show();

                    break;
                case R.id.DG_Button_Id3:
                    final String [] array3 = new String[]{"男","女"};
                    AlertDialog.Builder bulier3 = new AlertDialog.Builder(DiaglogActivity.this);
                    bulier3.setTitle("选择你的性别");
                    bulier3.setSingleChoiceItems(array3, 0, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(getApplicationContext(),array3[which],Toast.LENGTH_LONG).show();
                            //对话框消失
                            dialog.dismiss();
                        }
                    }).setCancelable(false).show();

                    break;
                case R.id.DG_Button_Id4:
                    final String [] array4 = new String[]{"唱歌","跳舞","下棋","打球"};
                    boolean [] isSelected = new boolean[]{true,false,false,false};
                    AlertDialog.Builder bulier4 = new AlertDialog.Builder(DiaglogActivity.this);
                    bulier4.setTitle("选择你的兴趣").setMultiChoiceItems(array4, isSelected, new DialogInterface.OnMultiChoiceClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                            ToastUtil.showMsg(DiaglogActivity.this,array4[which]+":"+isChecked);
                        }
                    }).setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(getApplicationContext(),"选择确定",Toast.LENGTH_LONG).show();
                        }
                    }).setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(getApplicationContext(),"选择取消",Toast.LENGTH_LONG).show();
                        }
                    }).show();

                    break;
            }
        }
    }
}

 


AlertDialog自定义样式:

在activity_dialog布局文件再增加一个Button控件:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第30张图片

然后再对应的Activity( DialogActivity)声明空间,绑定监听器:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第31张图片

需要为自定义的样式提供一个子布局文件,所以新建一个布局文件,命名为:layout_dialog

Android的警示对话框AlertDialog简单使用实例(附Demo)_第32张图片

根布局为线性布局

Android的警示对话框AlertDialog简单使用实例(附Demo)_第33张图片

设置一个登录界面:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第34张图片

整体代码如下:



    
    
    

 

Android的警示对话框AlertDialog简单使用实例(附Demo)_第35张图片

运行应用程序:

按键自定义样式:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第36张图片

弹出一个对话框,可以在输入账号和密码之后,在登陆按钮的点击事件去账号密码:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第37张图片


自定义Dialog:

新建一个包,命名为:widgeDialog

Android的警示对话框AlertDialog简单使用实例(附Demo)_第38张图片

Android的警示对话框AlertDialog简单使用实例(附Demo)_第39张图片

在包中新建一个类CustomDialog继承自Dialog:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第40张图片

Android的警示对话框AlertDialog简单使用实例(附Demo)_第41张图片

编写CustomDialog的内容:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第42张图片


新建一个布局文件为,为Dialog提供子布局:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第43张图片

命名为:layout_custom_dialog

Android的警示对话框AlertDialog简单使用实例(附Demo)_第44张图片

在布局文件话一个UI界面如下图所示:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第45张图片

整体代码:



    
    
    
    
        
        
        


    


  • 我们可以为这个Dialog设置一个自定圆角的形状:

首先新建Drawable resoure file,根布局是shape:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第46张图片

命名为:layout_custom_dialog

Android的警示对话框AlertDialog简单使用实例(附Demo)_第47张图片

Android的警示对话框AlertDialog简单使用实例(附Demo)_第48张图片

  •  也可以设置一个按压的效果:

首先新建Drawable resoure file,根布局是selector,命名为:button_select

Android的警示对话框AlertDialog简单使用实例(附Demo)_第49张图片

Android的警示对话框AlertDialog简单使用实例(附Demo)_第50张图片

设置按压效果:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第51张图片

然后在layout_custom_dialog的布局文件设置确定和取消文本的背景色为这个drawable。

Android的警示对话框AlertDialog简单使用实例(附Demo)_第52张图片


回到CustomDialog.java中:

希望可以通过外部的函数去改变这个自定义Dialog的显示内容,怎么做?

Android的警示对话框AlertDialog简单使用实例(附Demo)_第53张图片

使用快捷功能来写他们的Set方法:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第54张图片

Android的警示对话框AlertDialog简单使用实例(附Demo)_第55张图片

Android的警示对话框AlertDialog简单使用实例(附Demo)_第56张图片

自动为我们创建了这些方法:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第57张图片

定义连个接口,用于确定和取消按钮的监听器事件外部的回调函数:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第58张图片

声明这两个接口:

因为设置确定取消按钮的时候,还需要设置他的点击事件,在下面两个函数增加一个入口函数:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第59张图片


既然我们要实现点击事件我们可以直接让CustomDialog去实现OnClickListener,然后复写里面的onClick方法:

既继承Dialog,又实现OnClickListener:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第60张图片

复写onClick方法:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第61张图片

为确定按钮和取消按钮设置监听器:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第62张图片

为了学习前面一样,采用Bulider模式,调用函数,我们改变一下setTitle()setMessage()方法的返回值,模仿Builder的模式:

如下:

 Android的警示对话框AlertDialog简单使用实例(附Demo)_第63张图片

整体代码:

package com.example.yuan.e06_gridview.widgeDialog;

import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;

import com.example.yuan.e05_listview.R;

public class CustomDialog extends Dialog implements View.OnClickListener{
    //声明应用
    private TextView mTextViewTitle,mTextViewMsg,mTextViewCancle,mTextViewConfirm;
    private String title,message,confirm, cancel;
   //声明接口
    private IOnConfirmListener confirmListener;
    private IOnCancelListener cancelListener;
    public CustomDialog(@NonNull Context context) {
        super(context);
    }
    public CustomDialog(@NonNull Context context,int themeId) {
        super(context);
    }
    public CustomDialog setTitle(String title) {
        this.title = title;
        return this;
    }
    public CustomDialog setMessage(String message) {
        this.message = message;
        return this;
    }
    public CustomDialog setConfirm(String confirm,IOnConfirmListener listener) {
        this.confirm = confirm;
        this.confirmListener = listener;
        return this;
    }
    public CustomDialog setCancel(String cancel,IOnCancelListener listener) {
        this.cancel = cancel;
        this.cancelListener = listener;
        return this;
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置Dialog的布局
        setContentView(R.layout.layout_custom_dialog);
        //获取控件实体
        mTextViewTitle=(TextView) findViewById(R.id.TextView_titleId);
        mTextViewMsg=(TextView) findViewById(R.id.TextView_MessageId);
        mTextViewConfirm=(TextView) findViewById(R.id.TextView_ComfirmId);
        mTextViewCancle=(TextView) findViewById(R.id.TextView_CancleId);
        //判断文本框是否为空
        if(!TextUtils.isEmpty(title)){
            mTextViewTitle.setText(title);
        }
        if(!TextUtils.isEmpty(message)){
            mTextViewMsg.setText(message);
        }
        if(!TextUtils.isEmpty(cancel)){
            mTextViewCancle.setText(cancel);
        }
        if(!TextUtils.isEmpty(confirm)){
            mTextViewConfirm.setText(confirm);
        }
        //设置监听器,传进去一个参数是当前的Dialog
        mTextViewConfirm.setOnClickListener(this);
        mTextViewCancle.setOnClickListener(this);

    }
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.TextView_ComfirmId:
                if (confirmListener != null){
                    confirmListener.onConfirm(this);
                }
                break;
            case R.id.TextView_CancleId:
                if (cancelListener != null){
                    cancelListener.onCancel(this);
                }
                break;
        }
    }
    //定义点击事件的外部回调函数
    //确定按钮的回调函数
    public interface IOnConfirmListener{
        void onConfirm(CustomDialog dialog);
    }
    //取消按钮的监听器回调函数
    public interface IOnCancelListener{
        void onCancel(CustomDialog dialog);
    }
}

 


 在activity_dialog这个布局文件增加按钮控件,用于跳转到自定义的Activity:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第64张图片

修改DialogActivity,获取按钮实例,然后绑定监听器:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第65张图片

代码:

 case R.id.DG_Button_Id6:
                    //实例化一个CustomDialog
                    CustomDialog customDialog = new CustomDialog(DiaglogActivity.this);
                    customDialog.setTitle("温馨提示").setMessage("是否删除数据")
                            .setCancel("取消", new CustomDialog.IOnCancelListener() {
                                @Override
                                public void onCancel(CustomDialog dialog) {
                                    ToastUtil.showMsg(getApplicationContext(),"取消");
                                }
                            }).setConfirm("确定", new CustomDialog.IOnConfirmListener() {
                        @Override
                        public void onConfirm(CustomDialog dialog) {
                            ToastUtil.showMsg(getApplicationContext(),"确认");
                        }
                    }).show();
                    break;

 现在算是已经完成了自定义的Dialog样式,如我们画的布局所示,但是发现比较尴尬的一点事尺寸不对,像是被压缩了一样, 有点难看,这是我们就需要再设置一下Dialog的宽度了,回到DialogActivity.java这个类中,在setContentView(R.layout.layout_custom_dialog);后面增加宽度的设置:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第66张图片

代码:

 //设置Dialog的宽度
        WindowManager m = getWindow().getWindowManager();
        Display d = m.getDefaultDisplay();
        WindowManager.LayoutParams p = getWindow().getAttributes();
        Point size = new Point();
        d.getSize(size);
        p.width = (int) (size.x * 0.8); //设置Dialog的宽度为当前手机屏幕的宽度的80%
        getWindow().setAttributes(p);

.运行应用程序:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第67张图片

点击自定义Dialog按钮,填出一个Dialog窗口:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第68张图片

但你选中一个不放时,会有按压效果:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第69张图片

点击确定之后,填出一个Toast显示,确定,然后Dialog消失:

Android的警示对话框AlertDialog简单使用实例(附Demo)_第70张图片


 

你可能感兴趣的:(Android,学习笔记)