Android中的diglog对话框
Dialog 对话框在Android是一种极为常见的交互方式,常在需要较弹出重要的信息的提示,或需要用户进行简单交互的时候使用
Android中的对话框形式大致可分为五种:分别是一般对话框形式,列表对话框形式,单选按钮对话框,多选按钮对话框,自定义对话框。现在几乎所有的手机的应用都有对话框,主要用于选择或是退出,系统也为我们封装了对话框,但本人认为系统自带的比较难看,所有都用自定义的对话框。
一、首先,我们先介绍一下系统的一般对话框形式。
在创建Dialog的时候,首先需要使用Builder类来设置Dialog的各种属性
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
方法 | 描述 | 示例 |
setTitle(CharSequence title) | 设置布局 | builder.setTitle(“Title”) |
setMessage(CharSequence message) |
设置内容 | builder.setMessage(“内容”) |
setView(View view) | 设置内容布局 | builder.setView(view); |
setItems(CharSequence[] items, final OnClickListener listener) |
设置对话框要 显示的一个 list |
builder.setItems(new String[] {“a”,”b”},null); |
setMultiChoiceI tems |
设置对话框显示一些列 复选框 第一个参数是各个选项 第二个参数是默认状态 第三个参数是选中监听 |
builder.setMultiChoi ceItems(new String[] {"a","b"}, new boolean[] {true,true},null); |
setNeutralButton | 普通按钮 |
builder.setPositiveButto n(" |
设置完成后调用 builder.show()方法即可显示对话框
private void showMyDialog() {
//通过AlertDialog.Builder这个类来实例化我们的一个AlertDialog的对象,可以对Dialog的各个参数进行设置AlertDialog.Builder builder = new AlertDialog.Builder(this);
//设置Title的标题builder.setTitle("MainActivity");
//设置Title的图标
builder.setIcon(R.mipmap.ic_launcher);
//设置来显示主要的信息
builder.setMessage("欢迎来到MainActivity");
//设置一个PositiveButton,积极按钮通常放“确定”,第二个参数是:点击事件builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Override public void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "positive: " + which,Toast.LENGTH_SHORT).show();}});
//设置一个NegativeButton,消极按钮通常放“取消”,第二个参数是:点击事件builder.setNegativeButton("取消",new DialogInterface.OnClickListener(){
@Override public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "negative: " + which,Toast.LENGTH_SHORT).show(); }});//设置一个NeutralButton,普通按钮通常放“取消”,第二个参数是:点击事件builder.setNeutralButton("忽略", new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "neutral: " + which,Toast.LENGTH_SHORT).show(); } }); //通过调用show方法,来显示出该对话框
builder.show();
}
二、列表对话框形式
private void showNameDialog() {AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("选择一个人物");
//指定下拉列表的显示数据final String[] characters = {"鸣人", "小樱", "佐助", "大蛇丸", "小李"}; //设置一个下拉的列表选择项
builder.setItems(characters , new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which){ Toast.makeText(MainActivity.this, "选择的人物是:" + characters[which], Toast.LENGTH_SHORT).show(); }}); builder.show();
}
三、单选按钮对话框
private void showMyDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("选择性别");
final String[] sex = {"男", "女"};
//设置一个单项选择下拉框, 第一个参数指定我们要显示的一组下拉单选框的数据集合,第二个参数代表索引,指定默认哪一个单选框被勾选上,0位置就默认是选男(数组的下标默认从0开始),第三个参数给每一个单选项绑定一个监听
builder.setSingleChoiceItems(sex, 0, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
Toast.makeText(MainActivity.this, "您选择的性别为:" + sex[which], Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确定", null);
builder.setNegativeButton("取消",null);
builder.show();
}
四、多选按钮对话框
private void showMyDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setIcon(R.mipmap.ic_launcher); builder.setTitle("爱好");
final String[] hobbies = {"篮球", "足球", "网球", "乒乓球"};
// 设置一个单项选择下拉框
//第一个参数指定我们要显示的一组下拉多选框的数据集合,
//第二个参数代表哪几个选项被选择,如果是null,则表示一个都不选择,如果希望指定哪一个多选选项框被选择,需要传递一个boolean[]数组进去,其长度要和第一个参数的长度相同,例如第一个和第四个的状态是被选中的,则{true, false, false, true};
//第三个参数给每一个多选项绑定一个监听器
builder.setMultiChoiceItems(hobbies, null, new DialogInterface.OnMultiChoiceClickListener(){StringBuffer str = new StringBuffer(100);@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked){if(isChecked){str.append(hobbies[which] + ", ");}Toast.makeText(MainActivity.this, "爱好为:" + str.toString(), Toast.LENGTH_SHORT).show();}});builder.setPositiveButton("确定",null);builder.setNegativeButton("取消", null);builder.show();}
五、自定义的Dialog
mydialog.xml:
<?xml version="1.0" encoding="utf-8"?> <LinraLayout
xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/username" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="username"/>
<EditText
android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="password"/>
</LinraLayout>
private void showMyDialog(){
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("请输入用户名和密码");
// 通过LayoutInflater来加载一个xml的布局文件作为一个View对象
View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.mydialog, null);
// 设置我们自己定义的布局文件作为弹出框的Content builder.setView(view);
final EditText username = (EditText)view.findViewById(R.id.username); final EditText password = (EditText)view.findViewById(R.id.password); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
String name = username.getText().toString();
String password = password.getText().toString();
// 将输入的用户名和密码打印出来 Toast.makeText(MainActivity.this, "用户名: " + name + ", 密码: " + password, Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", null);
builder.show();
}
本人菜鸟一个,有什么不对的地方还望大家指出,大神勿喷!
Android中的diglog对话框相关推荐
- 如何在android中创建自定义对话框?
本文翻译自:How to create a Custom Dialog box in android? I want to create a custom dialog box like below ...
- android 设置对话框的高度,如何控制Android中默认警报对话框的宽度和高度?
如何控制Android中默认警报对话框的宽度和高度?AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTi ...
- android 显示进度,progressdialog-如何在Android中显示进度对话框?
progressdialog-如何在Android中显示进度对话框? 当我单击"登录"按钮时,我想显示ProgressDialog,这需要时间才能移动到另一个页面. 我怎样才能做到 ...
- (20120731)Android中的各种对话框总结(dialog)
android中的对话框形式大致分为四种,分别是一般对话框形式,列表对话框形式,单选对话框形式,多选对话框形式 另外一种是登录对话框形式 下面一一对这几种对话框进行详细的讲解 1.一般对话框 butt ...
- android 单选框 icon,Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解...
标签: 对话框就是一个AlertDialog,但是一个简单的AlertDialog,我们却可以将它玩出许多花样来,下面我们就来一起总结一下AlertDialog的用法.看看各位童鞋在平时的工作中否都用 ...
- appium java 点击事件_java – 无法使用Appium在Android中的权限对话框中单击“允许”按钮...
我无法使用Appium Java在 Android的权限对话框中点击"拒绝"或"允许"按钮.在点击这些按钮之前,是否需要添加任何功能? 以下是代码: Desir ...
- java打开输入框,java – 在Android中打开输入对话框
我想在某个点打开一个输入对话框,我可以在其输入后存储和使用它. 我在互联网上找到的所有例子都非常先进,我想它们并不像我想要的那样简单 – 我只需要类似于Java的东西: String name = J ...
- android 类型.this,Android中各种类型对话框的使用
只有标题和文本内容简单对话框 代码与范例: AlertDialog.Builder dlg; dlg = new AlertDialog.Builder(AlertDialogSample.this) ...
- android开发提示对话框,Android中Notification 提示对话框
Notification,俗称通知,是一种具有全局效果的通知,它展示在屏幕的顶端,首先会表现为一个图标的形式,当用户向下滑动的时候,展示出通知具体的内容. 一.Notification用于状态栏显示通 ...
最新文章
- WWDC2014:留给微软的时间不多了!
- ob 接oracle10时接不上怎么办?
- java dictionary遍历_遍历 Dictionary,你会几种方式?
- NVIDIA将全面支持笔记本混合显卡技术
- Java1.8接口方法都是抽象_抽象类和接口的区别以及jdk1.8之后接口里面可以实现方法...
- OSSIM中主动与被动探测工具(arpwatch+p0f+pads)组合应用
- android 退出代码
- 最详细的Mysql操作手册(一)
- matlab排队模型和排队系统仿真
- python统计群聊话痨、活跃日期和活跃时段
- Navicat 15.0.27 激活时弹出No All Pattern Found File Already Patched?(已解决)
- 获取mp3部分信息的python代码
- SQL Server Always Encrypted
- dcos master挂掉后 slave上面的container会咋样
- Java线程的6种状态(NEW,RUNNABLE,BLOCKED,WAITING,TINED_WATING,TEMINATE)
- Lumion 11.0:领先的建筑可视化工具再次升级!+全版本安装包
- 5款靠谱的安卓备份应用
- (一)数据后端之逻辑综合
- 【评测】】Lonza双胶囊、微粒剂型产品
- 光遇安卓服务器维护哪天,光遇安卓版什么时候上线 光遇全平台公测具体开服时间...
热门文章
- 黄宏生的轨迹有乔布斯和玛莎的影子
- kotlin 构建对象_使用Kotlin,TypeScript和Okta构建安全的Notes应用程序
- Ubuntu 双显示器修改登录背景
- 怎么配置网站静态为tink php,ThinkPHP 伪静态配置
- Docker基础使用
- 關於《生化兵器》這個老遊戲的安裝
- PS、AE、PR、CAD、SPSS、3D Max、Maya、Office 等常用软件插件合集
- 用正交法设计测试用例
- 发现了一个智力题库、面试题库网站 http://fayaa.com/tiku/
- window安装elasticsearch7.x