Android的几种弹出框

项目效果图:

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

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();
    }
}

原文地址:https://www.cnblogs.com/charlypage/p/10306829.html

时间: 2024-10-10 12:29:32

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

android 三种弹出框之一poprpWindow

poprpWindow 在android的弹出框我目前了解到的是有三种:AlertDialog,poprpWindow,Activity伪弹框, AlertDialog太熟悉了,这里就不介绍了 就先看看poprpWindow API 给出的解释是: 意思就是一个展示view的弹出窗体,这个弹出窗体将会浮动在当前activity的最上层, 它和AlertDialog的区别是:在android中弹出框有两种方式:AlertDialog和PopupWindow,它们的不同点在于:      1.Ale

JavaScript中的三种弹出框

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>JavaScript中的三种弹出框</title> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 6 <script type="text/JavaScript"> 7 funct

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

B/S不像C/S那样一个MessageBox就可以弹出提示框,不过可以通过js的“Alert”来弹出消息,或者通过一些变种的js方法.下面我给大家介绍几种,希望大家喜欢. 四种弹出框代码: protected void Message_Click(object sender, EventArgs e) { //第一种 Response.Write("<script language=javascript>alert('第一种弹出框');</" + "scri

js按钮确认删除提示以及js的三种弹出框简单介绍

js按钮确认删除提示 第一种方法: html代码: 1 <a href="" οnclick="javascript:return del();">删除</a> js代码: 1 function del() { 2 var msg = "您真的确定要删除吗?\n\n请确认!"; 3 if (confirm(msg)==true){ 4 return true; 5 }else{ 6 return false; 7 } 8

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

Android自带各式各样的弹出框,弹出框也是安卓基本的组件之一.同时安卓程序可以对菜单键.返回键的监听,但在安卓4.0之后就禁止对Home键的屏蔽与监听,强制保留为系统守护按键,如果非要对Home键的屏蔽与监听,就会出现java.lang.IllegalArgumentException: Window type can not be changed after the window is added.的错误. 下面写一个小程序,来说明Android各式各样的弹出框,同时,安卓是如何对菜单键.

javascript 三种弹出框

1.alert(msg) msg 要弹出的消息 此方法有一个确定按钮 无返回值 2.confirm(msg)  msg 要弹出的消息 此方法有一个确定和取消按钮 确定返回true 取消返回false 3.prompt(msg) msg 要弹出的消息 此方法有一个确定和取消按钮 以及一个输入框   1. 点击确定按钮,文本框中的内容将作为函数返回值 2. 点击取消按钮,将返回null

ASP.NET中的几种弹出框提示基本实现方法

我们在.NET程序的开发过程中,常常需要和用户进行信息交互,比如执行某项操作是否成功,"确定"还是"取消",以及选择"确定"或"取消"后是否需要跳转到某个页面等,下面是本人对常用对话框使用的小结,希望对大家有所帮助,同时也欢迎大家补充. (1) 点击页面上的按钮,弹出一个对话框提示是"确定"还是"取消"操作,我们采用在按钮中添加属性来完成: 举例如下: 复制代码代码如下: public

AlertDialog自己定义View的使用方法+怎样改变弹出框的大小

android系统定义了弹出框,支持我们自己定义布局: public AlertDialog getEditCustomDialog() { LayoutInflater inflater = getLayoutInflater(); View view = inflater.inflate(R.layout.custom_message_rename, null); AlertDialog.Builder builder = new AlertDialog.Builder(AnimationT

AlertDialog自定义View的用法+如何改变弹出框的大小

android系统定义了弹出框,支持我们自定义布局: public AlertDialog getEditCustomDialog() { LayoutInflater inflater = getLayoutInflater(); View view = inflater.inflate(R.layout.custom_message_rename, null); AlertDialog.Builder builder = new AlertDialog.Builder(AnimationTe