android安卓之常用对话框设计AlertDialog
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相关推荐
- Android安卓的家教平台设计小程序app毕业设计
Android安卓的家教平台设计小程序app毕业设计
- Android中五种常用对话框的使用
场景 Android中常用的五种对话框为 常规对话框.带列表的对话框.自定义的对话框.带进度条的对话框.带日期选择器的对话框. 注: 博客: https://blog.csdn.net/badao_l ...
- 【Android 常见控件使用】AlertDialog(对话框)详解
文章目录 AlertDialog(对话框)详解 本节引言 1.基本使用流程 2.几种常用的对话框使用示例 3.通过Builder的setView()定制显示的AlertDialog AlertDial ...
- java创建医生的对象_基于安卓Android的作物医生App设计开发(MySQL)(含录像)
基于安卓Android的作物医生App设计开发(MySQL)(含录像)(毕业论文14000字,PHP程序代码,MySQL数据库) 本系统使用软件工程方法进行一系列的分析.设计.实现与测试.使用面向对象 ...
- android 驾考软件开发,基于安卓的驾照考试软件设计与实现__毕业设计论文.doc
基于安卓的驾照考试软件设计与实现 摘 要 随着手机用户的低龄化普遍化,以及驾照考试学员的年轻化,使用手机APP方便自己考试测试的用户也将会越来越多.而这些人中,使用安卓系统的人数占到了智能机用户人数的 ...
- java 美发管理系统_基于安卓Android潮流美发系统APP设计(MySQL)
基于安卓Android潮流美发系统APP设计(MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文16000字,程序代码,MySQL数据库) 本应用主要用于对手机上网用户,在线预约 ...
- 计算机毕业设计Python+uniapp+安卓基于Android健康饮食搭配的设计与实现(WEB+APP+LW)
计算机毕业设计Python+uniapp+安卓基于Android健康饮食搭配的设计与实现(WEB+APP+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: ...
- 微博app是用java写的吗_基于安卓Android第三方微博APP的设计(Eclipse)
基于安卓Android第三方微博APP的设计(Eclipse)(论文11000字,程序代码) 摘要:Android系统是基于LINUX的手机操作系统,其最大的优势在于整个系统的开源性和免费性.本系统以 ...
- Android音乐设计论文,基于安卓Android的音乐播放的设计与实现
基于安卓Android的音乐播放的设计与实现(含开题报告,毕业论文12600字,程序代码) [摘 要] 本文旨在用于Android系统上的音乐播放器应用程序的设计与实现进行讨论.Android ...
最新文章
- luogu1514 [NOIp2010]引水入城 (bfs+记忆化搜索)
- PHP算法基于相同键合并数组
- 计算机it分几个学,2020德国计算机专业申请指南 IT专业学习有哪些难度
- Spring5 版本新特性简述
- 容斥原理 和 欧拉函数
- MySql通过Limit限制查询的行数
- 拿去用,常见几种加密算法的Python实现
- postgresql 相关杂记
- Firefox浏览器个人用的插件
- 最常用的五种PDF阅读器,你都用过了吗!
- jQuery实现button按钮提交表单
- Pyecharts 猎聘招聘数据可视化
- UltraVNC远程控制其他电脑
- 网站访问流程及原理分析
- linux opengl配置编译,Linux下OpenGL的安装与cmake编译OpenGL程序
- Navicat可视化界面导入SQL文件生成数据库表
- vivo NEX 旗舰版——拆卸和分析
- 关于H5的知识点(HTML+CSS+JS)
- Android开发之--从app中跳转到淘宝店铺
- 微信小程序app.js给全局变量globalData赋值
热门文章
- 读《乔布斯传记》有感4-----回到苹果
- Java实现操作系统中四种动态内存分配算法:BF+NF+WF+FF
- RocketMQ 任意时间维度的延迟消息(秒级)
- WorldWind软件在VxWorks下的移植
- android 好友字母分组,Android好友联系人按字母排序分组,自定义通讯录导航栏View...
- 经典用例设计(纸杯、购物车、电梯、登录框)
- 屁股坐久痛,用麻将当坐垫
- cookie和storage
- myeclipse10激活注册码生成器代码
- 北京交大计算机学院师资,赵瑞珍(计算机与信息技术学院)老师 - 北京交通大学 - 院校大全...