项目效果图:

新建一个项目,结构图如下所示:

activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" /> <Button
android:onClick="click1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="普通对话框"
/>
<Button
android:onClick="click2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="单选对话框"
/>
<Button
android:onClick="click3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="多选对话框"
/>
<Button
android:onClick="click4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="进度条对话框"
/> </LinearLayout>
MainActivity:
package com.demo.duihuakuang;

import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Build;
import android.os.SystemClock;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast; import org.w3c.dom.Text; public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} public void click1(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("警告");
builder.setMessage("世界上最遥远的距离是没有网");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.out.println("点了确定");
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.out.println("点了取消");
}
});
//一样要show
builder.show(); } //点击按钮弹出一个单选对话框
public void click2(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("请选择您喜欢的课程");
final String items[] = {"android", "ios", "c", "C++", "html", "C#"}; //-1代表没有条目被选中
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//1.把选中的条目取出来
String item = items[which]; Toast.makeText(getApplicationContext(),item.toString(),Toast.LENGTH_LONG).show(); //2.然后把对话框关闭
dialog.dismiss(); }
}); //一样要show
builder.show(); } //多选对话框
public void click3(View view) {
System.out.println("点击了");
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("请选择你喜欢吃的水果"); final String items[] = {"香蕉", "黄瓜", "冬瓜", "哈密瓜", "梨", "柚子"}; final boolean [] checkedItems ={true,false,false,false,false,true}; builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) { }
}); //把选中的挑选出来
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
StringBuffer sb = new StringBuffer();
//把选中的条目的数据取出来
for (int i = 0; i <checkedItems.length ; i++) {
//判断下选中的
if(checkedItems[i]){
String fruit = items[i];
sb.append(fruit+"");
}
Toast.makeText(getApplicationContext(),sb.toString(),Toast.LENGTH_LONG).show();
//2.然后把对话框关闭
dialog.dismiss();
}
}
}); //一样要show
builder.show();
} //进度加载框
public void click4(View view) { final ProgressDialog dialog = new ProgressDialog(this); dialog.setTitle("正在玩命加载中...");
//设置一下进度条的样式
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //创建一个子线程
new Thread(){
@Override
public void run() {
//设置进度条的最大值
dialog.setMax(100); //设置当前进度
for (int i = 0; i <=100 ; i++) {
dialog.setProgress(i);
//睡眠一会儿
SystemClock.sleep(50);
}
//关闭对话框
dialog.dismiss();
}
}.start(); //一样要show
dialog.show();
}
}

Android的几种弹出框的更多相关文章

  1. js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框

    js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...

  2. JavaScript中的三种弹出框的区别与使用

    JavaScript中有三种原生的弹出框,分别是alert.confirm.prompt.分别表示弹出框.确认框.信息框. 以下是示例代码: <!DOCTYPE html> <htm ...

  3. js基础 三种弹出框 数据类型

    总结:js三个组成部分ES:语法DOM:对象模型 => 通过js代码与页面文档(出现在body中的所有可视化标签)进行交互BOM:对象模型 => 通过js代码与浏览器自带功能进行交互 引入 ...

  4. 关于jsp和html页面中的三种弹出框

    代码: <!-- 引入jquery 由于在下面使用jquery选择器,与弹出框无关 --> <script type="text/javascript" src= ...

  5. ASP.NET中的几种弹出框提示

    B/S不像C/S那样一个MessageBox就可以弹出提示框,不过可以通过js的“Alert”来弹出消息,或者通过一些变种的js方法.下面我给大家介绍几种,希望大家喜欢. 四种弹出框代码: prote ...

  6. android 三种弹出框之一PopupWindow

    PopupWindow 在android的弹出框我目前了解到的是有三种:AlertDialog,PopupWindow,Activity伪弹框, AlertDialog太熟悉了,这里就不介绍了 就先看 ...

  7. js中三种弹出框

    javascript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prompt()来获得,可以利用这些对话框来完成js的输入和输出,实现与用户能进行交互的js代码 ...

  8. Windows Phone 几种弹出框提示方式

    首先,我们需要在网络上下载一个Coding4Fun 然后,引用  using Coding4Fun.Phone.Controls.Toolkit;                using Codin ...

  9. 【Android】各式各样的弹出框与对菜单键、返回键的监听

    Android自带各式各样的弹出框.弹出框也是安卓主要的组件之中的一个.同一时候安卓程序能够对菜单键.返回键的监听.但在安卓4.0之后就禁止对Home键的屏蔽与监听,强制保留为系统守护按键.假设非要对 ...

随机推荐

  1. (转)JDK安装配置教程

    转自:http://jingyan.baidu.com/article/bea41d435bc695b4c41be648.html JDK作为JAVA开发的环境,不管是做JAVA开发的学生,还是做安卓 ...

  2. How to resolve "your security settings have blocked an untrusted application from running" in Mac

    If you encounter the error "your security settings have blocked an untrusted application from r ...

  3. Alpha冲刺 - (10/10)

    Part.1 开篇 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Part.2 成员汇报 组员1(组长)柯奇豪 过去两天完成了哪些任务 本人负责的模块(共享编辑)的前端代码 ...

  4. ZUFE2480: 神奇的序列 2017-05-12 16:45 39人阅读 评论(0) 收藏

    2480: 神奇的序列 时间限制: 4 Sec  内存限制: 256 MB 提交: 31  解决: 15 [提交][状态][讨论版] 题目描述 序列a如下: a[0] = A; a[1] = B; a ...

  5. Surface 2装机必备软件指南

    新买的Surface到货了还不知道有什么用,每天就用来划划点点?有点太浪费了吧!跟哥走,哥给你推荐几款Surface 2装机必备的软件~应用商店,走起~ 初次使用看过来:Win8宝典 如果你是一个像我 ...

  6. Navicat连接mysql8.0.1版本出现1251--Client does not support authentication protocol requested by server的解决

    转载自:https://blog.csdn.net/XDMFC/article/details/80263215 好不容易安装好mysql,但又出现了mysql客户端版本太低的问题.根据参考的这篇博客 ...

  7. hdu 1576 A/B 【扩展欧几里德】

    题目 A/9973=n 那么:n= A - A / 9973 * 9973   --① 设:A/B=x  则A=B*x,代入①  得  n=B*x-A/9973*9973 然后这个方程中的A/9973 ...

  8. hdu 5055

    http://acm.hdu.edu.cn/showproblem.php?pid=5055 n个digit能组合出的最大无前导0奇数 无聊的模拟 #include <cstdio> #i ...

  9. iOS 项目国际化(多语言支持)

    按下图步骤创建好后使用如下代码即可实现国际化:self.infoLB.text = NSLocalizedString("key", comment: "") ...

  10. 怎样SQL存储过程中执行动态SQL语句

    MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一个最大的好处就 ...