自定义AlertDialog,模仿Ios弹出框

原创 2015年11月19日 14:19:59

这个是看了网上很多例子后,自己优化改进写出来的例子。用法和安卓原生的显示,可以由用户自行组合出自己想要的弹出框,不会高度定制限定死各种弹出框的UI,每个部件都是独立的,如标题,内容,左按钮,右按钮,底部一个按钮,list等。

下面是界面:



贴上关键代码,MainActivity:

  public void onClick(View v) {
        switch (v.getId()) {
            case R.id.activity_setting_textview_updata:
                new AlertIosDialog(this).builder(R.style.AlertDialogStyle).setTitle("温馨提示").setMsg("发现新版本,建议立即更新使用").setPositiveButton("立即更新", new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(getApplicationContext(), "正在下载更新…", Toast.LENGTH_SHORT).show();
                    }
                }).setNegativeButton("下次再说", new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                    }
                }).show();
                break;
            case R.id.activity_setting_textview_getmsg:
                new AlertIosDialog(this).builder(R.style.AlertDialogStyle).setTitle("是否同步消息?").setPositiveButton("确定", new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(getApplicationContext(), "正在同步消息…", Toast.LENGTH_SHORT).show();
                    }
                }).setNegativeButton("取消", new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                    }
                }).show();
                break;
            case R.id.activity_setting_textview_loginout:
                new AlertIosDialog(this).builder(R.style.AlertDialogStyle).setMsg("是否退出登录?").setPositiveButton("确定", new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(getApplicationContext(), "退出登录", Toast.LENGTH_SHORT).show();
                    }
                }).setNegativeButton("取消", new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                    }
                }).show();
                break;
            case R.id.activity_setting_textview_select_panel:
                new AlertIosDialog(this).builder(R.style.AlertDialogStyle).setAlertDialogSize(1).setSelsctPanel(R.mipmap.ic_launcher, R.mipmap.ic_launcher, "左面板", "右面板").setLeftPanelOnClick(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(getApplicationContext(), "左面板", Toast.LENGTH_SHORT).show();
                    }
                }).setRightPanelOnClick(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(getApplicationContext(), "右面板", Toast.LENGTH_SHORT).show();
                    }
                }).show();
                break;
            case R.id.activity_setting_textview_list:
                //这里的setAlertDialogSize(0.95),不要设置为1否知因外面的布局导致弹出的AlertDialogde 右边出错没有了圆角的背景,原因估计跟andoird画图有些关系吧,具体不明。
                new AlertIosDialog(this).builder(R.style.ActionListDialogStyle).setAlertDialogSize(0.95).setTitle("选择操作").setCancleOnTouchOutside(false).addListItems("条目一", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "item" + which, Toast.LENGTH_SHORT).show();
                    }
                }).addListItems("条目二", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "item" + which, Toast.LENGTH_SHORT).show();
                    }
                }).addListItems("条目三", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "item" + which, Toast.LENGTH_SHORT).show();
                    }
                }).addListItems("条目四", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "item" + which, Toast.LENGTH_SHORT).show();
                    }
                }).addListItems("条目五", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "item" + which, Toast.LENGTH_SHORT).show();
                    }
                }).addListItems("条目六", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "item" + which, Toast.LENGTH_SHORT).show();
                    }
                }).addListItems("条目七", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "item" + which, Toast.LENGTH_SHORT).show();
                    }
                }).addListItems("条目八", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "item" + which, Toast.LENGTH_SHORT).show();
                    }
                }).addListItems("条目九", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "item" + which, Toast.LENGTH_SHORT).show();
                    }
                }).addListItems("条目十", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "item" + which, Toast.LENGTH_SHORT).show();
                    }
                }).setCanaleBtnClickListener("取消", new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                    }
                }).show();
                break;

            case R.id.activity_setting_textview_towbtn:
                new AlertIosDialog(this).builder(R.style.AlertDialogStyle).setAlertDialogSize(0.5).addListItems("复制", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "复制" + which, Toast.LENGTH_SHORT).show();
                    }
                }).addListItems("删除", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "删除" + which, Toast.LENGTH_SHORT).show();
                    }
                }).show();
                break;
            case R.id.activity_setting_textview_countdown:
                new AlertIosDialog(this).builder(R.style.AlertDialogStyle).setAlertDialogSize(0.5).setTitle("倒数面板").setCountDown(5, "秒后自动跳转页面", new OnTimeAlertViewClickListener() {
                    @Override
                    public void confirm() {
                        Toast.makeText(getApplicationContext(), "删除成功", Toast.LENGTH_SHORT).show();
                    }
                }).setPositiveButton("手动跳转", new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(getApplicationContext(), "跳转成功!", Toast.LENGTH_SHORT).show();
                    }
                }).setCancleOnTouchOutside(false).show();
                break;
            case R.id.activity_setting_textview_bottom:
                new AlertIosDialog(this).builder(R.style.ActionListDialogStyle).setAlertDialogSize(0.95).setCancleOnTouchOutside(false).addListItems("条目一", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "item" + which, Toast.LENGTH_SHORT).show();
                    }
                }).addListItems("条目二", ListItemsColor.Blue, new OnListItemsClickListener() {
                    @Override
                    public void onClick(int which) {
                        Toast.makeText(getApplicationContext(), "item" + which, Toast.LENGTH_SHORT).show();
                    }
                }).setCanaleBtnClickListener("取消", new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                    }
                }).show();
                break;

        }


通过上述的setTitle,setMsg,addList等方法组合出自己想要的弹出框吧~

代码下载


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

IOS开发之---自定义dialog加载框

转自http://blog.csdn.net/pjk1129/article/details/6665603 这里介绍一下网友开源的MBProgressHUD类,实现等待框, ...

jquery仿IOS弹出框插件

这款弹出框插件是本人自己模仿IOS原生弹出框写的一个自定义插件,包括Alert弹出框和Confirm确认框,支持标题,内容,按钮文字以及按钮回调函数自定义,使用非常简单,可以进行扩展,下面是插件使用方...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

自定义AlterDialog( 自定义仿IOS的AlertDialog的样式)

也不知道为什么,在做项目的时候客户一般都会让android版本的与IOS版本一样。所以好多IOS自带的控件,android都得“重新”写过。 今天和大家分享的是“重写"AlterDialog控件。其...

android实现 仿iphoneDialog实现类似于iphone对话框样式

参考这里:  http://blog.csdn.net/xiechengfa/article/details/40373331

自定义AlertDialog,模仿Ios弹出框

这个是看了网上很多例子后,自己优化改进写出来的例子。用法和安卓原生的显示,可以由用户自行组合出自己想要的弹出框,不会高度定制限定死各种弹出框的UI,每个部件都是独立的,如标题,内容,左按钮,右按钮,底...

android 自定义弹出框AlertDialog

前段时间在设计UI的时候看到UC的弹出菜单设计挺好  如图效果:于是就小小的模仿了下自己写了这个这样的效果,主要代码如下:dlg = new AlertDialog.Builder(context)....
  • happyq
  • happyq
  • 2011-05-16 10:21
  • 4900

android的弹出框 -(一)--AlertDialog,时间弹出框DatePickerDialog 和进度条弹出框showProgressDialog

这里介绍三种弹出框android的弹出框AlertDialog,时间弹出框DatePickerDialog 和进度条弹出框showProgressDialog--我将在下一篇介绍自定义弹出框 ...

自定义仿IOS底部弹出Dialog

//1.先看一张效果图 //主界面就是一个button,点击弹出dialog 2.1 我们先看看dialog的布局代码如下: <android.support.percent.PercentRe...

自定义弹出框

// //  WJViewController.m //  WJAlertView // //  Created by 华通众和 on 16/5/5. //  Copyright © 2016年 华鑫...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)