android安卓之常用对话框设计AlertDialog

学习目的:掌握常用对话框中提示,单选,复选,自定义对话框的设计和使用。

布局文件

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"xmlns:android="http://schemas.android.com/apk/res/android" ><TextViewandroid:id="@+id/tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="你的选择是:" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:id="@+id/tip_btn"android:layout_width="140dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="提示对话框" /><Buttonandroid:id="@+id/tip2_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="自定义提示对话框" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:id="@+id/radio_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="单选对话框" /><Buttonandroid:id="@+id/mul_btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="多选对话框" /></LinearLayout></LinearLayout>

MainActivity文件

提示

当点击“提示对话框”时,显示内容如下,当点击确定时,文本显示内容为“你的选择是确定”,反之文本内容显示为“你的选择是取消”。

tip_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);builder.setIcon(R.mipmap.ic_launcher);builder.setTitle("注意");builder.setMessage("你确定要退出吗");builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {tv.setText("你的选择是确定");}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {tv.setText("你的选择是取消");}});builder.create();builder.show();}});

自定义

当点击“自定义提示对话框”时,显示登录界面,如下图左边,点击确定后效果显示如右边。

登录界面的布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"xmlns:android="http://schemas.android.com/apk/res/android" ><EditTextandroid:id="@+id/name"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入用户名" /><EditTextandroid:id="@+id/pass"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输入密码" />
</LinearLayout>

点击事件方法

需要我们了解的是

LayoutInflater inflater=getLayoutInflater();
View layout=inflater.inflate(R.layout.login_dialog,null);这两句是把另一个登录界面引入到事件中。后通过

builder.setView(layout);来显示登录的布局文件。


tip2_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);LayoutInflater inflater=getLayoutInflater();View layout=inflater.inflate(R.layout.login_dialog,null);final EditText etName,etPass;etName=layout.findViewById(R.id.name);etPass=layout.findViewById(R.id.pass);builder.setView(layout);builder.setTitle("登录");builder.setIcon(R.mipmap.ic_launcher);builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {String name=etName.getText().toString().trim();String pass=etPass.getText().toString().trim();tv.setText("你的用户名是"+name+",你的密码是"+pass);}});builder.setNegativeButton("取消",null);builder.create();builder.show();}
});

单选

当点击“单选对话框”时,显示效果如下图左边,选择某个选项后,显示效果如右边。

radio_btn.setOnClickListener(new View.OnClickListener() {String[] items = new String[] {"信管专业","计科专业","软工专业"};int choose=0;@Overridepublic void onClick(View view) {AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);builder.setIcon(R.mipmap.ic_launcher);builder.setTitle("选择专业");builder.setCancelable(false);builder.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {choose=i;}});builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {tv.setText("你的专业是"+items[choose]);}});builder.setNegativeButton("取消",null);builder.create();builder.show();}
});

多选

当点击“多选对话框”时,显示效果如下图左边,选择某个选项后,显示效果如右边。

mul_btn.setOnClickListener(new View.OnClickListener() {String[] place = new String[] {"北京","上海","纽约","巴黎"};boolean[] check=new boolean[] {false,true,true,false};@Overridepublic void onClick(View view) {AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);builder.setIcon(R.mipmap.ic_launcher);builder.setTitle("请选择你去过的城市");builder.setMultiChoiceItems(place, check, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i, boolean b) {check[i]=b;}});builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {StringBuilder stringBuilder=new StringBuilder("你去过的城市有:");for (int j=0; j<place.length ;j++){if (check[j]==true){stringBuilder.append(place[j]).append("\t");}}tv.setText(stringBuilder.toString());}});builder.setNegativeButton("取消",null);builder.create();builder.show();}
});

最后附上全的main文件

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button tip_btn=findViewById(R.id.tip_btn);Button tip2_btn=findViewById(R.id.tip2_btn);Button radio_btn=findViewById(R.id.radio_btn);Button mul_btn=findViewById(R.id.mul_btn);final TextView tv = findViewById(R.id.tv);tip_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);builder.setIcon(R.mipmap.ic_launcher);builder.setTitle("注意");builder.setMessage("你确定要退出吗");builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {tv.setText("你的选择是确定");}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {tv.setText("你的选择是取消");}});builder.create();builder.show();}});tip2_btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);LayoutInflater inflater=getLayoutInflater();View layout=inflater.inflate(R.layout.login_dialog,null);final EditText etName,etPass;etName=layout.findViewById(R.id.name);etPass=layout.findViewById(R.id.pass);builder.setView(layout);builder.setTitle("登录");builder.setIcon(R.mipmap.ic_launcher);builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {String name=etName.getText().toString().trim();String pass=etPass.getText().toString().trim();tv.setText("你的用户名是"+name+",你的密码是"+pass);}});builder.setNegativeButton("取消",null);builder.create();builder.show();}});radio_btn.setOnClickListener(new View.OnClickListener() {String[] items = new String[] {"信管专业","计科专业","软工专业"};int choose=0;@Overridepublic void onClick(View view) {AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);builder.setIcon(R.mipmap.ic_launcher);builder.setTitle("选择专业");builder.setCancelable(false);builder.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {choose=i;}});builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {tv.setText("你的专业是"+items[choose]);}});builder.setNegativeButton("取消",null);builder.create();builder.show();}});mul_btn.setOnClickListener(new View.OnClickListener() {String[] place = new String[] {"北京","上海","纽约","巴黎"};boolean[] check=new boolean[] {false,true,true,false};@Overridepublic void onClick(View view) {AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);builder.setIcon(R.mipmap.ic_launcher);builder.setTitle("请选择你去过的城市");builder.setMultiChoiceItems(place, check, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i, boolean b) {check[i]=b;}});builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {StringBuilder stringBuilder=new StringBuilder("你去过的城市有:");for (int j=0; j<place.length ;j++){if (check[j]==true){stringBuilder.append(place[j]).append("\t");}}tv.setText(stringBuilder.toString());}});builder.setNegativeButton("取消",null);builder.create();builder.show();}});}
}

android安卓之常用对话框设计AlertDialog相关推荐

  1. Android安卓的家教平台设计小程序app毕业设计

    Android安卓的家教平台设计小程序app毕业设计

  2. Android中五种常用对话框的使用

    场景 Android中常用的五种对话框为 常规对话框.带列表的对话框.自定义的对话框.带进度条的对话框.带日期选择器的对话框. 注: 博客: https://blog.csdn.net/badao_l ...

  3. 【Android 常见控件使用】AlertDialog(对话框)详解

    文章目录 AlertDialog(对话框)详解 本节引言 1.基本使用流程 2.几种常用的对话框使用示例 3.通过Builder的setView()定制显示的AlertDialog AlertDial ...

  4. java创建医生的对象_基于安卓Android的作物医生App设计开发(MySQL)(含录像)

    基于安卓Android的作物医生App设计开发(MySQL)(含录像)(毕业论文14000字,PHP程序代码,MySQL数据库) 本系统使用软件工程方法进行一系列的分析.设计.实现与测试.使用面向对象 ...

  5. android 驾考软件开发,基于安卓的驾照考试软件设计与实现__毕业设计论文.doc

    基于安卓的驾照考试软件设计与实现 摘 要 随着手机用户的低龄化普遍化,以及驾照考试学员的年轻化,使用手机APP方便自己考试测试的用户也将会越来越多.而这些人中,使用安卓系统的人数占到了智能机用户人数的 ...

  6. java 美发管理系统_基于安卓Android潮流美发系统APP设计(MySQL)

    基于安卓Android潮流美发系统APP设计(MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文16000字,程序代码,MySQL数据库) 本应用主要用于对手机上网用户,在线预约 ...

  7. 计算机毕业设计Python+uniapp+安卓基于Android健康饮食搭配的设计与实现(WEB+APP+LW)

    计算机毕业设计Python+uniapp+安卓基于Android健康饮食搭配的设计与实现(WEB+APP+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: ...

  8. 微博app是用java写的吗_基于安卓Android第三方微博APP的设计(Eclipse)

    基于安卓Android第三方微博APP的设计(Eclipse)(论文11000字,程序代码) 摘要:Android系统是基于LINUX的手机操作系统,其最大的优势在于整个系统的开源性和免费性.本系统以 ...

  9. Android音乐设计论文,基于安卓Android的音乐播放的设计与实现

    基于安卓Android的音乐播放的设计与实现(含开题报告,毕业论文12600字,程序代码) [摘  要]    本文旨在用于Android系统上的音乐播放器应用程序的设计与实现进行讨论.Android ...

最新文章

  1. luogu1514 [NOIp2010]引水入城 (bfs+记忆化搜索)
  2. PHP算法基于相同键合并数组
  3. 计算机it分几个学,2020德国计算机专业申请指南 IT专业学习有哪些难度
  4. Spring5 版本新特性简述
  5. 容斥原理 和 欧拉函数
  6. MySql通过Limit限制查询的行数
  7. 拿去用,常见几种加密算法的Python实现
  8. postgresql 相关杂记
  9. Firefox浏览器个人用的插件
  10. 最常用的五种PDF阅读器,你都用过了吗!
  11. jQuery实现button按钮提交表单
  12. Pyecharts 猎聘招聘数据可视化
  13. UltraVNC远程控制其他电脑
  14. 网站访问流程及原理分析
  15. linux opengl配置编译,Linux下OpenGL的安装与cmake编译OpenGL程序
  16. Navicat可视化界面导入SQL文件生成数据库表
  17. vivo NEX 旗舰版——拆卸和分析
  18. 关于H5的知识点(HTML+CSS+JS)
  19. Android开发之--从app中跳转到淘宝店铺
  20. 微信小程序app.js给全局变量globalData赋值

热门文章

  1. 读《乔布斯传记》有感4-----回到苹果
  2. Java实现操作系统中四种动态内存分配算法:BF+NF+WF+FF
  3. RocketMQ 任意时间维度的延迟消息(秒级)
  4. WorldWind软件在VxWorks下的移植
  5. android 好友字母分组,Android好友联系人按字母排序分组,自定义通讯录导航栏View...
  6. 经典用例设计(纸杯、购物车、电梯、登录框)
  7. 屁股坐久痛,用麻将当坐垫
  8. cookie和storage
  9. myeclipse10激活注册码生成器代码
  10. 北京交大计算机学院师资,赵瑞珍(计算机与信息技术学院)老师 - 北京交通大学 - 院校大全...