Android Dialog对话框
来源:互联网 发布:联胜软件 编辑:程序博客网 时间:2024/05/21 14:09
在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择,或者给用户提示,这个情况下方便了客户,也便利了自己,不用重复的去创建Activity,可谓“他好,我也好”。这些功能我们们叫它Android Dialog对话框,在我们使用Android的过程中,Android Dialog的类型也分好几种。
AlertDialog实现方法(建造者模式)
实例化建造者AlertDialog.Builder
利用builder设置对话框的各种属性
setTitle(标题)
setMessage(消息)
setIcon(图标)
setCancelable(boolean b)设置是否可以取消
setPositiveButton() 设置正面按钮及点击事件
setNegativeButton() 设置反面按钮及点击事件
setNeutralButton() 设置中立按钮及点击事件
今天给大家介绍几种常见的Dialog
1、提示Dialog
public void alertClick(View v) { //创建 一个提示对话框的构造者对象 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("提示");//标题 builder.setIcon(R.drawable.ic_launcher);//图标 builder.setMessage("你寂寞吗?"); builder.setCancelable(false);//能否被取消 //正面的按钮(肯定) builder.setPositiveButton("是", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "那我给你介绍个妹子吧", Toast.LENGTH_SHORT).show(); dialog.cancel(); } }); //反面的按钮(否定) builder.setNegativeButton("否", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "那你自己玩吧", Toast.LENGTH_SHORT).show(); dialog.cancel(); } }); //中立的按钮 builder.setNeutralButton("沉默", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "你到是说句话", Toast.LENGTH_SHORT).show(); dialog.cancel(); } }); builder.show(); }
这个提示带有一句提示消息,并带有三个按钮,实现效果如下:
2、多项单选Dialog,顾名思义就是多项里面选择一个,实现代码如下:
public void selectClick(View v){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("请选择一位"); builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show(); } }); builder.show(); }
效果图如下:
3、多项多选Dialog,即多项选择,实现代码如下:
public void multiClick(View v) { names.clear(); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("请选择"); builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { if (isChecked) { names.add(items[which]); Toast.makeText(MainActivity.this, items[which] + "被选中了", Toast.LENGTH_SHORT).show(); }else{ names.remove(items[which]); Toast.makeText(MainActivity.this, items[which] + "被取消了", Toast.LENGTH_SHORT).show(); } } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, Arrays.toString(names.toArray()), Toast.LENGTH_SHORT).show(); dialog.cancel(); } }); builder.show(); }
效果如下图:
4、登录Dialog,此处需要自定义一个login_layout布局,并将其填充进去:
public void loginClick(View v){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("登录"); final View view = getLayoutInflater().inflate(R.layout.login_layout,null); builder.setView(view); builder.setPositiveButton("登录", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { EditText et_username = (EditText) view.findViewById(R.id.editText_username); EditText et_password = (EditText) view.findViewById(R.id.editText_password); String username = et_username.getText().toString(); String password = et_password.getText().toString(); Toast.makeText(MainActivity.this, username+"-"+password, Toast.LENGTH_SHORT).show(); dialog.cancel(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.show(); }
实现效果如下:
总结:当然dialog样式还有很多种,因为这个布局可以自定义,所以扩展空间无限,大家实际开发过程中根据自己需求来定义自己的dialog给用户方便也给自己方便。
转载地址http://mp.weixin.qq.com/s?__biz=MzAwOTUyNzI3Ng==&mid=2652071068&idx=1&sn=1a0e3d8790ad2b4a6232e6bea24c16e4&scene=23&srcid=0527246AatTnvLnbRcWxZCqT#rd
- Android Dialog 对话框例子
- Android 对话框(Dialog)
- Android Dialog( 自定义对话框)
- Android 对话框(Dialog)大全
- Android 对话框(Dialog)大全
- Android 对话框(Dialog)大全
- Android 对话框(Dialog)
- Android 弹出对话框Dialog
- Android 对话框(Dialog)大全
- Android自定义Dialog对话框
- Android 对话框(Dialog)
- Android 对话框(Dialog)大全
- 【Android】之【对话框 Dialog】
- Android对话框dialog
- Android 弹出对话框Dialog
- Android 对话框(Dialog)
- Android对话框dialog大全
- Android 对话框(Dialog)大全
- iOS:你真的理解你在用的自定义NSLog吗?
- 电话 短信
- 设计模式笔记-Prototype模式
- 绪论
- java.util.Properties.getProperty()方法实例
- Android Dialog对话框
- ISCC2016Basic Writeup
- springmvc4 相关注解的详细讲解
- ERROR executor.Executor: Exception in task 0.0 in stage 0.0 (TID 0) java.lang.IllegalArgumentExcepti
- java数据类型
- 修改命名空间
- SpiderMonkey--VM栈设计
- 根据值删除列表中的某些元素
- Android Spinner 获取条目个数