Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解
来源:互联网 发布:黑马程序员32期 编辑:程序博客网 时间:2024/06/05 14:27
转载自http://blog.csdn.net/u012702547/article/details/50676606
普通对话框
普通对话框就是我们最最常用的对话框,实现起来并不复杂,实现出来的效果当然也是最简单的,如下:
AlertDialog dialog = new AlertDialog.Builder(this).setTitle("普通对话框").setIcon(R.drawable.a4s) .setNegativeButton("取消", null).setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //处理确认按钮的点击事件 } }).setNeutralButton("中立", null) .setMessage("确认删除?").create();dialog.show();我们可以给一个对话框设置标题,也可以设置图标,在对话框的最下面我们可以设置三个按钮,分别是取消、确定、中立,一般情况
下,我们可以在确认按钮中加入相应的点击事件。OK,那么这样一个对话框它的显示效果是什么样子的呢?如下:
显示Item的对话框
如果我们的对话框中要显示若干个item,那么我们可以给AlertDialog设置item,如下:
AlertDialog dialog = new AlertDialog.Builder(this).setTitle("显示Item对话框").setIcon(R.drawable.a4s) .setItems(items, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show(); } }).create();dialog.show();这里的items是一个String类型的数组,如下:
items = new String[] { "魏", "蜀", "吴" };那么这里我们就没有必要再设置最下方的三个按钮了,直接点击Item之后,触发相应的事件。在onClick方法中有一个int型参数叫做
which,这个参数表示的是用户点击了第几个item,显示效果如下:
当用户点击不同的item之后,我们在onClick方法中根据which的值的不同做出相应的处理。
单选对话框
和显示Item的对话框一样,单选对话框我们其实也没有必要再设置最下面的三个按钮(如果你非要设置也没问题),那么他的代码是
这样的:
AlertDialog dialog = new AlertDialog.Builder(this).setTitle("单选对话框").setIcon(R.drawable.a4s) .setSingleChoiceItems(items, -1, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }).create();dialog.show();这次我们调用的方法是setSingleChoiceItems这个方法,这个方法有三个参数,其中items的值和前面的一样,第二个参数表示预选
中的item,第三个参数则是事件的处理方法。事件处理方法也一样,不同的是这里多了一句dialog.dismiss();,没错,这里我们要手
动关闭dialog。那么它的显示效果是这样的:
当我们选中任意一个item的时候,dialog将会自动关闭,相应的点击事件我们在onClick方法中进行处理。
多选对话框
和单选对话框不同,多选对话框就要求我们必须有下面的按钮,那么在这里我给下面设置两个按钮,我们来看看代码:
AlertDialog dialog = new AlertDialog.Builder(this).setTitle("多选对话框").setIcon(R.drawable.a4s) .setNegativeButton("取消", null).setPositiveButton("确定", null) .setMultiChoiceItems(items, null, new OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { } }).create();dialog.show();和setSingleChoiceItems一样,这里的setMultiChoiceItems也有三个参数,分别是数据源,预选中的item以及item的点击事件,预选
中的item是一个Boolean型的数组,表示一开始哪些item被选中哪些item没有被选中,这里的点击事件也多了一个参数,就是
isChecked,表示该item是否被选中,那么我们可以通过一个boolean类型的数组来记录item的选中情况。这里我就不再单独写了。
多选对话框的显示效果如下图所示:
当我们选完我们要选的每一项之后,点击确定就可以拿到相应的数据了。
自定义Adapter
可能有同学注意到了,Builder还有一个方法叫做setAdapter,这个方法的参数是一个ListAdapter,就是我们平时为ListView制作的
Adapter,可以设置Adapter意味着我们的AlertDialog可以显示出来的内容更加的丰富,那么在这里我就使用最简单的ArrayAdapter来
为大家做一个Demo,代码如下:
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String[] { "张三", "李四" });AlertDialog dialog = new AlertDialog.Builder(this).setTitle("自定义Adapter").setIcon(R.drawable.a4s) .setAdapter(adapter, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }).create();dialog.show();显示效果如下:
这个时候我们想让AlertDialog显示成什么样子就能让它显示成什么样子,Adapter给我们带来了极大的灵活性。
自定义View
当然,这里终极大Boss还不是自定义Adapter,而是自定义View,通过自定义View,我们可以让我们的AlertDialog显示出任何我们
想要的界面,代码如下:
View view = LayoutInflater.from(this).inflate(R.layout.activity_main, null);AlertDialog dialog = new AlertDialog.Builder(this).setTitle("自定义View").setIcon(R.drawable.a4s).setView(view) .create();dialog.show();显示效果如下:
使用自定义View的方式,我们可以自定义出各种各样的Dialog出来,比如登录的Dialog,关于或者说明的Dialog等等。
- Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解
- (转载)Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解
- Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解
- Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解
- Android-Dialog对话框 全解(普通对话框,单选对话框,多选对话框,列表对话框,自定义对话框,Activity对话框)
- Android简单对话框、输入对话框、单选对话框、复选对话框、列表对话框、自定义对话框、时间对话框
- AlertDialog创建6种对话框的用法 (对话框,单选对话框,多选对话框,列表对话框,自定义对话框,退出对话框)
- Android的普通对话框,单选和多选对话框
- 各种对话框的实现(文字对话框,选择对话框,弹出输入对话框,单选,多选对话框,自定义对话框)
- android中的对话框:自定义对话框
- android自定义普通对话框,输入框对话框
- AlertDialog - 自定义单选对话框
- android通知对话框、多选对话框、单选对话框
- android中的对话框之三:自定义对话框
- android中的dialog 警告对话框,选择对话框,和一些自定义的对话框
- 对话框封装类(普通对话框,列表对话框,单选按钮对话框,复选对话框)
- Android系统对话框和自定义对话框实现
- Android对话框(二)进度条对话框ProgressDialog和自定义对话框CustomDialog
- 一起写RPC框架(二十五)RPC测试篇二---服务消费者和服务提供者直连测试
- Matrix原理
- [矩阵乘法]数列
- Missing contentDescription attribute on image
- AndroidStudio Gradle APP打包小技巧
- Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解
- 20161012MYSQL密码复杂度设置
- android学习--UI控件
- C++ STL中的vector的内存分配与释放
- 实际用户ID,有效用户ID及设置用户ID详解
- 虚拟机内存
- Yii的类自动加载机制
- ES6学习7(Proxy&Reflect)
- java Math