文档章节

Android对话框使用小结

北ing
 北ing
发布于 2015/10/20 19:23
字数 596
阅读 54
收藏 0
--AlertDialog   
--对话框结合适配器使用
----普通使用
----设置为单选模式
----设置为多选模式
-------两个数组,一个数组是item,一个数组是选择默认哪些选项被选中
----使用自定义布局
--对话框和菜单的结合使用

1)简单使用

//创建对话框构建器对象
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        //使用对话框构建器对象初始化对话框的属性
        builder.setTitle("确认")
               .setMessage("是真想退出吗?")
               .setIcon(R.drawable.ic_launcher)
               .setCancelable(false)//设置点击对话框之外的范围是否取消该对话框
               .setPositiveButton("是的", new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    finish();//销毁掉当前的Activity
                }
            })
              .setNegativeButton("不是", null);//第二个参数为null,点击则关闭对话框
        //生成对话框
        dialog = builder.create();

2)对话框结合适配器使用

1//对话框结合着适配器的使用
    private AlertDialog colorDialog;
    private ArrayAdapter<String> adapter;
AlertDialog.Builder builder = new AlertDialog.Builder(this);
        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
        adapter.add("红色");
        adapter.add("蓝色");
        adapter.add("黄色");
        colorDialog = builder.setTitle("选择颜色对话框")
               .setIcon(R.drawable.ic_launcher)
               .setAdapter(adapter, new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    String value = adapter.getItem(which);
                    textView.setText(value);
                }
               })
               .create();

这里写图片描述

3)把对话框设置单选模式

    private AlertDialog fontSizeDialog;
    private float[] fontSize={25f,30f,35f,40f,45f};
AlertDialog.Builder builder2 = new AlertDialog.Builder(this);
        fontSizeDialog = builder2.setTitle("字体选择对话框")
                .setIcon(R.drawable.ic_launcher)
                .setSingleChoiceItems(R.array.fontSize, 2,new OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String str = getResources().getStringArray(R.array.fontSize)[which];
                        setTitle(str);
                        textView.setTextSize(fontSize[which]);
                        dialog.dismiss();//关闭对话框
                    }
                })
                .create();

这里写图片描述

4)把对话框设置多选模式

private AlertDialog lovesDialog;
    private String[] hobbies= {"eat","sleep","playgame","study","run"};
    private boolean[] checked = {true,false,false,true,true};
//hobbies是对话框中的数据,checked 是每个选项的默认选择情况
AlertDialog.Builder builder3 = new AlertDialog.Builder(this);
        lovesDialog = builder3.setTitle("选择爱好")
                .setIcon(R.drawable.ic_launcher)
                .setMultiChoiceItems(hobbies, checked, new OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                           checked[which]=isChecked;
                    }
                })
                .setPositiveButton("确定", new OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        for(int i=0;i<checked.length;i++)
                        {
                            if(checked[i])
                                textView.append(loves[i]);
                        }
                    }
                })
                .create();

这里写图片描述

5)使用自定义布局的对话框

        View view = getLayoutInflater().inflate(R.layout.dialog_layout, null);
        edit_name = (EditText) view.findViewById(R.id.edit_name);
        edit_tel = (EditText) view.findViewById(R.id.edit_tel);

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        personDialog = builder.setTitle("添加人员信息对话框")
                .setIcon(R.drawable.ic_launcher)
                .setView(view)
                .setPositiveButton("确定", new OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String name  = edit_name.getText().toString();
                        String tel = edit_tel.getText().toString();
                        textView.append("\r\n姓名:"+name);
                        textView.append(" 电话:"+tel);
                    }
                })
                .create();

最后一句:实际开发中,使用自定义布局的比较多,所以UI设计是非常关键的。

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

© 著作权归作者所有

共有 人打赏支持
北ing
粉丝 0
博文 12
码字总数 17332
作品 0
海淀
私信 提问
Android开发权威指南(第2版)新书发布

《Android开发权威指南(第二版)》是畅销书《Android开发权威指南》的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45章精彩内容供读者学习。  《Android开发权威指...

androidguy
06/29
0
0
Android 如何监听返回键,弹出一个退出对话框

Android 如何监听返回键,弹出一个退出对话框 分类: 初级android2012-10-21 00:46 48472人阅读 评论(9) 收藏 举报 androiddialogbuttonclass Android 如何监听返回键点击事件,并创建一个退...

智勇
2015/03/18
0
0
《Android应用开发揭秘》超低价团购(已卖完)

注:团购价包含运费!此书在当当网售价51.80元。 《Android应用开发揭秘》内容简介: 国内第一本基于Android 2.0的经典著作,5大专业社区联袂推荐,权威性毋庸置疑! 本书内容全面,不仅详细...

老枪
2010/07/19
1K
17
开源中国2010年图书赠送活动《Android应用开发揭秘》

活动内容: 参与活动者请从现在开始,到2010年3月1日这段时间内,对Oschina独家发布的《Android应用开发揭秘》一书内容章节进行客观点评,及大家可以就该技术的趋势和定位提出一些看法,只要...

红薯
2010/01/25
5.9K
203
Android中Dialog与DialogFragment的对比

最近学习对话框时发现有两种类型的可供使用,一种是Dialog,另一种则是Android 3.0 引入的基于Fragment的DialogFragment。 从代码的编写角度看,Dialog使用起来要更为简单,但是Google则是推...

风荷举
2013/11/26
0
1

没有更多内容

加载失败,请刷新页面

加载更多

如何通过 MySQL 的二进制日志恢复数据库数据

经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响。所以本文我们将和大家一起分享学习下如何通过 MySQL 的二...

吴伟祥
11分钟前
0
0
org.apache.catalina.startup.Catalina stopServer SEVERE: Could not contact localhost:8005. Tomcat may

org.apache.catalina.startup.Catalina stopServer SEVERE: Could not contact localhost:8005. Tomcat may 2017年07月21日 14:52:10 子木HAPPY阳VIP 阅读数:14134 标签: tomcatnginx 更多......

linjin200
13分钟前
0
0
线下工坊|Blockchain Coding Day:零基础教你开发DAPP(北京)

我们的目标是通过编程学习让你更了解区块链技术。这将对区块链开发初学者一次很好的体验。这里需要强调一下,编程零基础也能学会。 我们将以小组的形式,由教练带领学员完成DAPP开发。每位学...

HiBlock
50分钟前
2
0
查看内存情况

jinfo:可以输出并修改运行时的java 进程的opts。 jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。 jstat:一个极强的监视VM内存工具。...

Canaan_
51分钟前
2
0
基于对象特征的推荐

(本实验选用数据为真实电商脱敏数据,仅用于学习,请勿商用) 在上一期基于协同过滤的的推荐场景中,我们介绍了如何通过PAI快速搭建一个基于协同过滤方案的推荐系统,这一节会介绍一些如何基...

阿里云官方博客
59分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部