安卓开发:四种对话框

先展示一下四种对话框的效果图:

普通对话框

单选对话框:

多选对话框:

进度条对话框:

一个简单的布局,放四个按钮:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click1"
        android:text="普通对话框" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click2"
        android:text="单选对话框" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click3"
        android:text="多选对话框" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click4"
        android:text="进度条对话框" />

</LinearLayout>

四种对话框:

package org.dreamtech.dialog;

import android.os.Bundle;
import android.os.SystemClock;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    // 普通对话框
    public void click1(View v) {
        AlertDialog.Builder builder = new Builder(this);
        builder.setTitle("对话框标题");
        builder.setMessage("对话框内容");
        builder.setPositiveButton("确认", new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "点击了确定按钮",
                        Toast.LENGTH_LONG).show();
            }
        });
        builder.setNegativeButton("取消", new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "点击了取消按钮",
                        Toast.LENGTH_LONG).show();
            }
        });
        builder.show();
    }

    // 单选对话框
    public void click2(View v) {
        AlertDialog.Builder builder = new Builder(this);
        builder.setTitle("对话框标题");
        final String items[] = { "选项1", "选项2", "选项3" };
        builder.setSingleChoiceItems(items, -1, new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                String item = items[which];
                Toast.makeText(getApplicationContext(), "选中" + item,
                        Toast.LENGTH_LONG).show();
                dialog.dismiss();
            }
        });
        builder.show();
    }

    // 多选对话框
    public void click3(View v) {
        AlertDialog.Builder builder = new Builder(this);
        builder.setTitle("对话框标题");
        final String items[] = { "选项1", "选项2", "选项3" };
        final boolean checkItems[] = { false, false, false };
        builder.setMultiChoiceItems(items, checkItems,
                new OnMultiChoiceClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which,
                            boolean isChecked) {

                    }
                });
        builder.setPositiveButton("确定", new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                StringBuffer sb = new StringBuffer();
                for (int i = 0; i < checkItems.length; i++) {
                    if (checkItems[i]) {
                        String choice = items[i];
                        sb.append(choice + " ");
                    }
                }
                Toast.makeText(getApplicationContext(), "选中" + sb.toString(),
                        Toast.LENGTH_LONG).show();
                dialog.dismiss();
            }
        });
        builder.show();
    }

    // 进度条对话框
    public void click4(View v) {
        final ProgressDialog dialog = new ProgressDialog(this);
        dialog.setTitle("正在加载");
        dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        dialog.show();
        new Thread() {
            public void run() {
                dialog.setMax(100);
                for (int i = 0; i <= 100; i++) {
                    dialog.setProgress(i);
                    SystemClock.sleep(50);
                }
                dialog.dismiss();
            };
        }.start();
    }
}

原文地址:https://www.cnblogs.com/xuyiqing/p/8908054.html

时间: 2024-08-29 11:57:39

安卓开发:四种对话框的相关文章

四种对话框的使用

Android手机系统中为开发者提供了四种对话框 分别是: AlertDIalog 提示对话框 ProgressDialog 进度对话框 DatePickerDialog 日期选择对话框 TimePickerDialog 时间选择对话框 提示对话框:形如这样,点击是的会出现一种事件,点击不是会出现另一种事件 实现功能: 界面上存在一个TextView,一个Button 点击Button的时候会弹出对话框,询问用户“你真的想删除吗?” 用户点击是的,TextView显示删除成功 用户点击不是,Te

iOS开发--四种多线程技术方案

iOS 多线程的四种技术方案 image pthread 实现多线程操作 代码实现: void * run(void *param) { for (NSInteger i = 0; i < 1000; i++) { NSLog(@"---buttonclick---%zd---%@", i, [NSThread currentThread]); } return NULL; } @implementation ViewController - (IBAction)clickBut

安卓开发中时间对话框的调用

安卓开发中,经常会使用到时间对话框.通常都是在一个EditText中选择日期.下面我们一起学习下时间对话框的使用方法. 1.首先,自己在对应的XML文件中设置两个控件,一个TextView,一个EditText.在activity中编写对EditText的操作. 2.声明变量(年月日)以及txtTime(EditText控件,用来显示时间)并相应的对其初始化. TextView tvInTime; EditText txtInTime; // 年月日 private int mYear; pri

初学安卓开发随笔之 Menu、toast 用法、活动的四种启动模式 以及 一个方便的Base活动类使用方法

Toast toast 是安卓系统的一种非常棒的提醒方式 首先定义一个弹出Toast的触发点,比如可以是按钮之类 其中 Toast.LENGTH_SHORT是指显示时长 还有一个内置变量为Toast.LENGTH_LONG可以选用. Toast.makeText(FirstActivity.this, "You clicked Button 1", Toast.LENGTH_SHORT).show(); Menu 首先 在res目录下新建一个menu文件夹 创建一个main.xml 类

安卓企业开发(三) activity的四种经典传值方法

开发中遇到多个activity的传值问题 相邻两个之间的传值 或者多个三个以上之间的传值问题 但是很多同学这方面经验还是不足,说下常用的开发场景 1 一般的注册或者添加某项信息界面就会遇activity传值问题 2  比如我在一个界面提交新息  需要打开一个新的界面选择里面的信息回到当前activty的时候 现在说下比较经典的四种比较经典的传值方法 一 如果是两个相邻activity之间的传值: 可以用Intent传值 对象和单个属性都可以都可以 Intent intent =new Inten

Android开发之基本控件和详解四种布局方式

Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方式Android和iOS还是区别挺大的,在iOS中有Frame绝对布局和AutoLayout相对布局.而在Android中的布局方式就比较丰富了,今天博客中会介绍四种常用的布局方式.先总结一下控件,然后再搞一搞基本方式,开发环境还是用的Mac下的Android Studio.开始今天的正题, 虽然A

程序员带你学习安卓开发,十天快速入门-基础知识(四)

关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到熟悉的效果. 本系列课程是.Net程序员学习安卓开发系列课程. 下面是前三次课程列表: 程序员带你学习安卓开发,十天快速入门-安卓学习必要性 程序员带你学习安卓开发,十天快速入门-开发工具配置学习 程序员带你学习安卓开发,十天快速入-对比C#学习java语法 为了大家系统有效的快速入门安卓开发,推荐

IOS开发之——四种方法解析Jason数据(转)

本文将介绍TouchJson. SBJson .JSONKit 和 iOS5所支持的原生的json方法,解析国家气象局API,TouchJson和SBJson需要下载他们的库 TouchJson包下载: http://download.csdn.net/detail/enuola/4523169 SBJson 包下载: http://download.csdn.net/detail/enuola/4523177 JSONKit包下载:http://download.csdn.net/detail

MFC 在对话框显示图片的多种方法(四种方法)

我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) 为方便说明,我们已经建好一个基于对话框的工程,名为Ttest. 对话框类为CTestDlg (一) 非动态载入图片. 方法1.先从最简单的开始,用picture 控件来实现. 步骤: 先在资源里Import一张图片,ID为IDB_BITMAP2 然后在对话框上添加一个picture控件,右键点击打开属性, 将type下拉框选择B