Android Studio常见对话框(普通对话框、单选对话框、多选对话框、进度条对话框、消息对话框、自定义对话框)
Android Studio常见对话框(普通对话框、单选对话框、多选对话框、进度条对话框、消息对话框、自定义对话框)
1.普通对话框
2.单选对话框
3.多选对话框
4.进度条对话框
5.消息对话框
6.自定义对话框
1.普通对话框
//1.创建普通对话框
package com.krisantisce.androiddialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle("dialog对话框") //设置标题
.setMessage("是否确定退出?") //设置提醒的信息
.setIcon(R.drawable.log) //设置图标
.setPositiveButton("确定",null) //添加确定按钮
.setNegativeButton("取消",null) //添加取消按钮
.create();
dialog.show();
}
}
效果:
2.单选对话框
//2.创建单选对话框
package com.krisantisce.androiddialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AlertDialog dialog = new AlertDialog.Builder(this)
.setIcon(R.drawable.log) //添加图标
.setTitle("请选择你的性别^_^")
.setPositiveButton("确定", null) //添加确定按钮
.setNegativeButton("取消", null) //添加取消按钮
.setSingleChoiceItems(new String[]{"男", "女"}, -1, //负数表示没有默认选择;0默认选择"男",1默认选择"女"
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.create();
dialog.show();
}
}
效果:
3.多选对话框
//3.创建多选对话框
package com.krisantisce.androiddialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setIcon(R.drawable.log) //设置图标
.setTitle("请选择你感兴趣的类型^_^") //设置标题
.setPositiveButton("选好啦",null) //设置确定按钮
.setNegativeButton("下次再说吧",null) //设置取消按钮
.setMultiChoiceItems(new String[]{"萝莉","御姐","正太","少女","女装大佬","萌妹","软妹子","JK","ACG","二次元"},null,null)
.create();
alertDialog.show();
}
}
效果:
4.进度条对话框
// 4.创建进度条对话框
package com.krisantisce.androiddialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ProgressDialog progressDialog = new ProgressDialog(this); //构建对话框
progressDialog.setTitle("进度条对话框");
progressDialog.setIcon(R.drawable.log);
progressDialog.setMessage("正在下载,请稍后^_^");
//设置水平进度条
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //条形进度条
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); //圆形进度条
progressDialog.show();
}
}
效果:
5.消息对话框
//5.消息对话框
package com.krisantisce.androiddialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this,"HrlloWorld",Toast.LENGTH_SHORT).show(); //通知时间短
Toast.makeText(this,"HelloWorld",Toast.LENGTH_LONG).show(); //通知时间长
}
}
效果:
6.自定义对话框
- 创建自定义对话框样式,这里以mydialog.xml为例;
- 创建MyDialog类;
- MainActivity调用MyDialog类
创建mydialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="提示"
android:background="#E619E3"
android:textSize="28sp"/>
<TextView
android:id="@+id/tv_2"
android:layout_width="match_parent"
android:layout_height="100dp"
android:gravity="center"
android:text="你真的要离开吗"
android:textColor="#ff0400"
android:background="@drawable/log3"
android:textSize="28sp"/>
<LinearLayout
android:id="@+id/ll_1"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="50sp"
android:gravity="center"
android:background="#D3DF26">
<Button
android:id="@+id/btn_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="残忍离开"
android:textSize="24sp"
android:background="#06F18B"
android:layout_marginRight="30dp"
android:onClick="okclick"/>
<Button
android:id="@+id/btn_2"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textSize="28sp"
android:text="马上进入"
android:background="#8284E1"
android:layout_marginLeft="30dp"
android:onClick="canclick"/>
</LinearLayout>
</LinearLayout>
创建MyDialog类
package com.krisantisce.androiddialog;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.NonNull;
public class MyDialog extends Dialog { //继承父类
private String dialogName;
public MyDialog(@NonNull Context context, String dialogName) {
super(context);
this.dialogName = dialogName;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); // 去除标题
setContentView(R.layout.mydialog); // 引入自定义对话框布局
TextView textView = findViewById(R.id.tv_2);
Button button_no = findViewById(R.id.btn_1);
Button button_ok = findViewById(R.id.btn_2);
//设置自定义对话框显示内容
textView.setText(dialogName);
//给按钮设置点击事件
button_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
button_no.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 把对话框关闭
dismiss();
}
});
}
}
MainActivity调用MyDialog类
package com.krisantisce.androiddialog;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyDialog myDialog = new MyDialog(this,null);
myDialog.show();
}
}
效果:
Android Studio常见对话框(普通对话框、单选对话框、多选对话框、进度条对话框、消息对话框、自定义对话框)的更多相关文章
- Dialog详解(包括进度条、PopupWindow、自定义view、自定义样式的对话框)
Dialog详解(包括进度条.PopupWindow.自定义view.自定义样式的对话框) Android中提供了多种对话框,在实际应用中我们可能会需要修改这些已有的对话框.本实例就是从实际出发, ...
- android -------- 流式布局,支持单选、多选等
最近开发中有流式标签这个功能,网上学了下,来分享一下 Android 流式布局,支持单选.多选等,适合用于产品标签等. 效果图: 用法: dependencies { compile 'com.hym ...
- Android特效专辑(十一)——仿水波纹流量球进度条控制器,实现高端大气的主流特效
Android特效专辑(十一)--仿水波纹流球进度条控制器,实现高端大气的主流特效 今天看到一个效果挺不错的,就模仿了下来,加上了一些自己想要的效果,感觉还不错的样子,所以就分享出来了,话不多说,上图 ...
- Android UI(四)云通讯录项目之云端更新进度条实现
作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节.交流QQ群:[编程之美 365234583]h ...
- Android开发 ---基本UI组件4:拖动事件、评分进度条、圆圈式进度条、进度条控制
Android开发 ---基本UI组件4 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding=" ...
- 一款多功能的移动端滚动选择器,支持单选到多选、支持多级级联、提供自定义回调函数、提供update函数二次渲染、重定位函数、兼容pc端拖拽等等..
https://github.com/onlyhom/mobileSelect.js/blob/master/docs/README-CN.md mobileSelect.js 一款多功能的移动端滚动 ...
- Android第三方开源SeekBarCompat:音乐类播放器等APP进度条常用
Android第三方开源SeekBarCompat:音乐类播放器等APP进度条常用 Android平台原生的SeekBar设计简单,然而,比如现在流行的一些音乐播放器的播放进度控制条,如果直接使 ...
- MFC3 基本对话框的使用(三) 滑块与进度条(sdnu)(C++大作业)
一.完成界面 运行前: 运行后: 二.工具 (1)滑块 (2)进度条 (3)文本框 (4)文本示例 (5)按钮 三.添加变量 四.添加事件 右键单击主对话框空白部分,打开类向导,选择"消息& ...
- android studio常见错误
1.Failed to import new Gradle project: Could not install Gradle distribution from'http://services.gr ...
随机推荐
- 前端之HTML1
直接上代码: <!DOCTYPE html> <html> <body bgcolor="green"> <h1 align=" ...
- restful 架构风格的curd(增删改查)
restful架构 概念:REST指的是一组架构约束条件和原则,如果一个架构符合REST的约束条件和原则,就称之为RESTful架构. restful不是一个专门的技术,他是一个规范.规范就是写写代码 ...
- 选择结构(if、switch)
3.2 用if语句实现选择结构 什么是选择结构 单分支if语句 双分支if语句 多分支if语句 1.什么是选择结构? 选择结构又称为分支结构,是根据给定的条件是否成立来决定程序的执行流程. 用if语 ...
- 我去,你竟然还不会用 synchronized
二哥,离你上一篇我去已经过去两周时间了,这个系列还不打算更新吗?着急着看呢. 以上是读者 Jason 发来的一条信息,不看不知道,一看真的是吓一跳,上次我去是 4 月 3 号更新的,离现在一个多月了, ...
- iOS开发--性能调优记录
CPU VS GPU 关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(图形处理器).但是由于历史原因,我们可以说CPU所做的工作都在软件层面,而GPU在硬件层面 对于图像处理,通常用硬件 ...
- [codeforces-543-D div1]树型DP
题意:给一棵树的边标上0或1,求以节点i为源点,其它点到i的唯一路径上的1的边数不超过1条的方案数,输出所有i的答案. 思路:令f[i]表示以节点i为源点,只考虑子树i时的方案数,ans[i]为最后答 ...
- aui移动端UI库
aui 简介 aui 是一套基于原生javascript开发的移动端UI库,包含常用js方法.字符校验.dialog提示弹窗.侧滑菜单.时间选择器.多级联动.聊天UI.项目常用模板...... 特点 ...
- yum安装mysql 之后问题
日志报错: 190412 15:56:50 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create ...
- java经典问题 byte b=1、b=b+1、b+=1
直接问题: 首先 byte的范围 [-128,127] byte 类型可以自动转为int类型 int类型不能自动转为byte类型. 超过byte的范围,就会变成int类型了 byte b=1:正确, ...
- POI 导入excel数据自动封装成model对象--代码分析
上完代码后,对代码进行主要的分析: 1.主要使用反射api将数数据注入javabean对象 2.代码中的日志信息级别为debug级别 3.获取ExcelImport对象后需要调用init()方法初始化 ...