Android 自定义对话框

自定义Dialog
●继承Dialog类
●实现
●构造方法和onCreate
●在styles. xml中自定义style
●自定义布局
●事件监听
●View. OnClickListener
●传值
●自定义并实现接口(传出)
●类成员变量(传入) .
9.2Android自定义Dialog对话框的几种方法
自定义对话框是经常使用的功能,我们常用的弹窗操作,除了使用popwindow就是使用dialog来实现,这两种组件都支持之定义布局和功能来满足我们个性化的需求,也可以不采用自定义而直接使用系统封装好的api来实现功能。今天简单总结下在使用dialog做弹窗功能的方法和会遇到的问题与解决方案。
方法一:直接使用系统的,不自定义布局和功能方式

	/* @setIcon 设置对话框图标
     * @setTitle 设置对话框标题
     * @setMessage 设置对话框消息提示    
     */        
    final AlertDialog.Builder normalDialog = 
        new AlertDialog.Builder(MainActivity.this);
    normalDialog.setIcon(R.drawable.icon_dialog);
    normalDialog.setTitle("我是一个普通Dialog")
    normalDialog.setMessage("你喜欢系统对话框吗?");
    normalDialog.setPositiveButton("确定", 
        new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            //...To-do
        }
    });
    normalDialog.setNegativeButton("关闭", 
        new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            //...To-do
        }
    });
    //如果想自定义三个按钮的对话框,可以把下面的方法注释打开
    //            normalDialog.setNeutralButton("第三个按钮",
    //                    new DialogInterface.OnClickListener() {
    //                        @Override
    //                        public void onClick(DialogInterface dialog, int which) {
    //                            // ...To-do
    //                        }
    //                    });
    // 显示
     normalDialog.show();
/* @setIcon 设置对话框图标
     * @setTitle 设置对话框标题
     * @setMessage 设置对话框消息提示    
     */        
    final AlertDialog.Builder normalDialog = 
        new AlertDialog.Builder(MainActivity.this);
    normalDialog.setIcon(R.drawable.icon_dialog);
    normalDialog.setTitle("我是一个普通Dialog")
    normalDialog.setMessage("你喜欢系统对话框吗?");
    normalDialog.setPositiveButton("确定", 
        new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            //...To-do
        }
    });
    normalDialog.setNegativeButton("关闭", 
        new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            //...To-do
        }
    });
    //如果想自定义三个按钮的对话框,可以把下面的方法注释打开
    //            normalDialog.setNeutralButton("第三个按钮",
    //                    new DialogInterface.OnClickListener() {
    //                        @Override
    //                        public void onClick(DialogInterface dialog, int which) {
    //                            // ...To-do
    //                        }
    //                    });
    // 显示
     normalDialog.show();

方法二:采用自定义布局和功能方式
自定义对话框布局: high_opinion_dialog_layout.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:paddingTop="@dimen/dp_20"
android:paddingBottom="@dimen/dp_10"
android:paddingLeft="@dimen/dp_15"
android:paddingRight="@dimen/dp_15"
android:orientation=“vertical”>

需要注意的问题总结:系统的dialog的宽度默认是固定的,即使你自定义布局的怎么修改宽高也不起作用,如果想修改弹出窗体大小,可以使用下面这段代码在调用dialog.show()方法之后来实现改变对话框的宽高的需求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值