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常见对话框(普通对话框、单选对话框、多选对话框、进度条对话框、消息对话框、自定义对话框)的更多相关文章

  1. Dialog详解(包括进度条、PopupWindow、自定义view、自定义样式的对话框)

    Dialog详解(包括进度条.PopupWindow.自定义view.自定义样式的对话框)   Android中提供了多种对话框,在实际应用中我们可能会需要修改这些已有的对话框.本实例就是从实际出发, ...

  2. android -------- 流式布局,支持单选、多选等

    最近开发中有流式标签这个功能,网上学了下,来分享一下 Android 流式布局,支持单选.多选等,适合用于产品标签等. 效果图: 用法: dependencies { compile 'com.hym ...

  3. Android特效专辑(十一)——仿水波纹流量球进度条控制器,实现高端大气的主流特效

    Android特效专辑(十一)--仿水波纹流球进度条控制器,实现高端大气的主流特效 今天看到一个效果挺不错的,就模仿了下来,加上了一些自己想要的效果,感觉还不错的样子,所以就分享出来了,话不多说,上图 ...

  4. Android UI(四)云通讯录项目之云端更新进度条实现

    作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节.交流QQ群:[编程之美 365234583]h ...

  5. Android开发 ---基本UI组件4:拖动事件、评分进度条、圆圈式进度条、进度条控制

    Android开发 ---基本UI组件4 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding=" ...

  6. 一款多功能的移动端滚动选择器,支持单选到多选、支持多级级联、提供自定义回调函数、提供update函数二次渲染、重定位函数、兼容pc端拖拽等等..

    https://github.com/onlyhom/mobileSelect.js/blob/master/docs/README-CN.md mobileSelect.js 一款多功能的移动端滚动 ...

  7. Android第三方开源SeekBarCompat:音乐类播放器等APP进度条常用

     Android第三方开源SeekBarCompat:音乐类播放器等APP进度条常用 Android平台原生的SeekBar设计简单,然而,比如现在流行的一些音乐播放器的播放进度控制条,如果直接使 ...

  8. MFC3 基本对话框的使用(三) 滑块与进度条(sdnu)(C++大作业)

    一.完成界面 运行前: 运行后: 二.工具 (1)滑块 (2)进度条 (3)文本框 (4)文本示例 (5)按钮 三.添加变量 四.添加事件 右键单击主对话框空白部分,打开类向导,选择"消息& ...

  9. android studio常见错误

    1.Failed to import new Gradle project: Could not install Gradle distribution from'http://services.gr ...

随机推荐

  1. 从垃圾回收机制解析为什么局部内部类只能访问final修饰的局部变量以及为什么加final能解决问题

    我们先稍微看一下代码: 从这里的提示可以看到,必须要将a的修饰符变为final才行. 现在笔者就这一结果做出自己的分析: 首先来说,我们知道,方法被调用时会执行,当执行的时候,方法中的局部变量会加载到 ...

  2. 折腾了好久的vscode配置c/c++语言环境(Windows环境下)

    最近有c语言相关的作业,但是突然再次拿起大一的时候那些c语言编辑器的时候,总觉得不智能,于是下了一个vscode,准备配一个c语言的环境 步骤如下: 1.vs官网下载好vscode,安装好以后再下载一 ...

  3. CTR学习笔记&代码实现5-深度ctr模型 DeepCrossing -> DCN

    之前总结了PNN,NFM,AFM这类两两向量乘积的方式,这一节我们换新的思路来看特征交互.DeepCrossing是最早在CTR模型中使用ResNet的前辈,DCN在ResNet上进一步创新,为高阶特 ...

  4. js对页面中的内容进行拼音搜索,只对后台已经传过来的页面数据进行索引

    实现输入拼音(可以使用拼音首字母来查),来查询出已经存在于页面的数据 注意:这种写法只能适用于页面中已经存在的数据进行检索,大体意思是将本页内的数据拼接成一个字符串,然后通过该字符串去检索匹配的字符串 ...

  5. 2018-06-25 js表单事件、三个高度和Ajax异步通讯技术

    表单事件: onfocus -> 表单控件得到焦点时触发: obj_ipt.onfocus=function(){}; onblur -> 表单控件失去焦点时: onchange -> ...

  6. Elasticsearch URI search 查询语法整理

    Elasticsearch URI search 一.请求体查询与空查询 1. 请求体查询(request body search) 简单查询语句(lite)是一种有效的命令行adhoc查询.但是,如 ...

  7. 我找到了Dubbo源码的BUG,同事纷纷说我有点东西

    点赞再看,养成习惯,微信搜索[三太子敖丙]关注这个互联网苟且偷生的工具人. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的 ...

  8. P1880 [NOI1995]石子合并 区间dp

    P1880 [NOI1995]石子合并 #include <bits/stdc++.h> using namespace std; ; const int inf = 0x3f3f3f3f ...

  9. 使用pandas库实现csv行和列的获取

    1.读取csv import pandas as pd df = pd.read_csv('路径/py.csv') 2.取行号 index_num = df.index 举个例子: import pa ...

  10. 代码行数统计的Java和Python实现

    通过编写程序来统计文件的行数,可以在巩固文件IO知识的同时计算出自己的代码量,以下分别提供Java和Python实现的版本. 解决思路 两种版本的思路几乎相同,每一个文件夹(目录)内的行数都是其所有子 ...