自定义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类,实现等待框, ...
  • wbw1985
  • wbw1985
  • 2012年08月16日 17:26
  • 5598

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

iOS开发 - UIAlertController 弹框提醒

传统的alertView- (void)alertView { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"警告" me...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

分享一个仿ios风格的AlertDialog的实现

之前在外派项目的时候遇到外派 公司的一个需求就是实现ios风格的弹窗,其实不得不说安卓风格确实有那么点chou,而我手上正好有一个实现ios风格的alertdialog,所以就给大家分享出来吧,上图看...

仿IOS7的两种对话框

一直用的iphone,所以很喜欢ios的各种控件,之前做过ios7的滑动按钮http://www.eoeandroid.com/thread-331542-1-1.html 这次再仿一下io...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

html5实现弹出提示框,并且伴随遮罩层并且可以关闭弹出框

*{padding: 0; margin: 0} .box{ position: fixed; width: 100%; ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

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

也不知道为什么,在做项目的时候客户一般都会让android版本的与IOS版本一样。所以好多IOS自带的控件,android都得“重新”写过。 今天和大家分享的是“重写"AlterDialog控件。其...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义AlertDialog,模仿Ios弹出框
举报原因:
原因补充:

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