Android之对话框

一:AlertDialog

AlertDialog的构造方法全部是Protected的,所以不能直接通过new一个AlertDialog来创建出一个AlertDialog。

要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法。

AlertDialog.Builder常用方法

   setTitle :为对话框设置标题
setIcon :为对话框设置图标
setMessage:为对话框设置内容
setView : 给对话框设置自定义样式
setItems :设置对话框要显示的一个list,一般用于显示几个命令时
setMultiChoiceItems :用来设置对话框显示一系列的复选框
setNeutralButton :普通按钮

setPositiveButton :给对话框添加"Yes"按钮
setNegativeButton :对话框添加"No"按钮
create : 创建对话框
show :显示对话框

 

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog.Builder;
import android.app.AlertDialog;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button=(Button)this.findViewById(R.id.button1);
        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
              Builder adInfo=new AlertDialog.Builder(MainActivity.this);
              adInfo.setTitle("简单对话框");                       //设置标题
                adInfo.setMessage("test");  //设置内容
                adInfo.setIcon(R.drawable.ic_launcher);          //设置图标
                adInfo.create();
              adInfo.show();
            }
        });
    }

1.AlertDialog可以显示3个按钮,现在我们增加显示按钮

1. dialog.setPositiveButton按钮显示在右边,2. dialog.setNegativeButton显示在左边3.dialog.setNeutralButton按钮显示在正中

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button=(Button)this.findViewById(R.id.button1);
        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Builder adInfo=new AlertDialog.Builder(MainActivity.this);
                adInfo.setTitle("简单对话框");                       //设置标题
                  adInfo.setMessage("test");  //设置内容
                  adInfo.setIcon(R.drawable.ic_launcher);
                adInfo.setPositiveButton("取消", new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                          // 根据实际情况编写相应代码。
                     }
                });
                //为“取消”按钮注册监听事件
                adInfo.setNegativeButton("确定", new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                          // 根据实际情况编写相应代码。
                     }
                });
                adInfo.create();
                adInfo.show();
            }
        });
    }

2.AlertDialog+按钮和复选框

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button=(Button)this.findViewById(R.id.button1);
        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                String[] choices={"Facebook","Twitter"};
                //Check判断数组,与选项对应
                boolean[] chsBool = {true,false};
                 //包含多个选项及复选框的对话框
                AlertDialog dialog = new AlertDialog.Builder(MainActivity.this)
                         .setIcon(android.R.drawable.btn_star_big_on)
                         .setTitle("调查")
                         .setMultiChoiceItems(choices, chsBool, multiClick)
                         .setPositiveButton("yes",  onclick)
                         .setNegativeButton("No",  onclick).create();
                dialog.show();
            }
        });
    }
    OnMultiChoiceClickListener multiClick = new OnMultiChoiceClickListener(){
        @Override
        public void onClick(DialogInterface dialog, int which, boolean isChecked) {
            Toast.makeText(MainActivity.this, "第"+(which+1)+"项,选中结果:"+isChecked,Toast.LENGTH_SHORT).show();
        }  

    };  

    OnClickListener onclick = new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
             switch (which) {
             case Dialog.BUTTON_NEGATIVE:
                 Toast.makeText(MainActivity.this, "No..",
                         Toast.LENGTH_LONG).show();
                 break;
             case Dialog.BUTTON_NEUTRAL:
                 Toast.makeText(MainActivity.this, "I don‘t know.",
                         Toast.LENGTH_LONG).show();
                 break;
             case Dialog.BUTTON_POSITIVE:
                 Toast.makeText(MainActivity.this, "Yes!!",
                         Toast.LENGTH_LONG).show();
                 break;
         }
     }

    };

二、自定义AlertDialog

如何自定义一个对话框呢?

(1)修改系统默认的Dialog样式(风格、主题)

(2)自定义Dialog布局文件

(3)可以自己封装一个类,继承自Dialog或者直接使用Dialog类来实现,为了方便以后重复使用,建议自己封装一个Dialog类。

待续。。。。

 

三、ProgressDialog

1.圆形进度条的使用

public class MainActivity extends Activity {
    private Button button1,button2;
     //声明进度条对话框
    private ProgressDialog pdDialog=null;
    //进度计数
    int iCount  = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button1=(Button)this.findViewById(R.id.progress);
        button2=(Button)this.findViewById(R.id.circle);
        button1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                  iCount  = 0;
                  pdDialog=new ProgressDialog(MainActivity.this);

                     //设置进度条风格,风格为圆形,旋转的
                     pdDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
                     // 设置ProgressDialog 标题
                     pdDialog.setTitle("圆形进度条");
                       // 设置ProgressDialog 提示信息
                     pdDialog.setMessage("正在下载中……");
                     // 设置ProgressDialog 标题图标
                     pdDialog.setIcon(R.drawable.ic_launcher);
                     // 设置ProgressDialog 进度条进度
                     pdDialog.setProgress(100);
                     // 设置ProgressDialog 的进度条是否不明确
                     pdDialog.setIndeterminate(false);
                     // 设置ProgressDialog 是否可以按退回按键取消
                     pdDialog.setCancelable(true);
                     // 设置ProgressDialog 的一个Button
                  pdDialog.setButton("取消", new DialogInterface.OnClickListener() {
                         public void onClick(DialogInterface dialog, int i)
                         {
                             //点击“取消”按钮取消对话框
                             dialog.cancel();
                         }
                     });
                     pdDialog.show();    

                     //创建线程实例
                       new Thread(){
                            public void run(){
                                try{
                                    while (iCount  <= 100) {
                                        // 由线程来控制进度。
                                        pdDialog.setProgress(iCount ++);
                                        Thread.sleep(50);
                                   }
                                   pdDialog.cancel();
                                }
                                catch (InterruptedException e){
                                    pdDialog.cancel();
                                }
                            }
                          }.start();
                   }
        });
        button2.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View arg0) {
                        // TODO Auto-generated method stub

                    }
                });
    }

2、环形进度条的使用

将其类型改成

pdDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 

时间: 2024-08-06 15:40:59

Android之对话框的相关文章

[Android]关于对话框dialog的一些事

7种形式的Android Dialog使用举例 http://www.oschina.net/question/54100_32486 [Android]关于对话框dialog的一些事,布布扣,bubuko.com

(七)android 通知对话框,并且监听了返回键,当按下返回键也会创建一个对话框

一.activity_main.java中代码   1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="matc

android的对话框

android中的对话框形式有四种,分别是一般对话框形式,列表对话框形式,单选按钮对话框,多选按钮对话框,下面我一一对他们进行详解. <一>一般对话框 一般对话框形式如下图: 具体实现代码如下: 1 new AlertDialog.Builder(this) 2 .setTitle("删除")//设置标题 3 .setMessage("确定要删除指定的记录?")//设置提示消息 4 .setPositiveButton("确定",ne

android 时间对话框 TimePickerDialog详细介绍

 个人在做提醒功能的时候用到了TimePickerDialog对话框,查阅了很多技术资料,但是感觉很多东西都说的不是很详细,并且很多地方,都有不完善的地方,比如有弹出对话框得到的不是系统当前的时间,而是一个其他时间的现象,让人很是苦闷.所以在经过几度研究之后,决定把个人对此空间的部分理解拿出来与大家讨论,如有不对之处,敬请谅解,会加以改进. 闲话不多说,直接进入主题: 首先,我们要在程序中声明一个日历的对象,并对其实例化获取日历实例,后面会用到. private Calendar c = C

Android日期对话框NumberPicker的用法教程

NumberPicker是Android3.0之后引入的一个控件,NumberPicker 是用于选择一组预定义好数字的控件.比如时间hour的选择只有0-23有效,则可以通过setMinValue和setMaxValue设定. 使用该控件时需注意他的两个listener和一个formatter:一个listener用于监听当前value的变化:一个listener用于监听该控件的scroll状态:formatter用于格式化显示该控件中的value.下面逐一介绍这几个接口: 1.NumberP

android各种对话框总结笔记

确定取消对话框(带图标) //(上下文,主题) new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT) .setTitle("标题").setMessage("内容").setIcon(R.drawable.ic_launcher) //响应点击事件 .setPositiveButton("确定", new OnClickListener() { @Overrid

android 自定义对话框

新建一个布局文件 my_dialog.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match

android 普通对话框的显示

*普通提示提示对话框: MainActivity.java: protect void onCreate(Bundle saveInstanceState) { super.onCreate(savedInstance); setContentView(R.layout.activity_main_01);//绑定Activity页面 Button btnNormalDialog = (Button)this.findViewById(R.id.btnHello); btnNormalDialo

android 简单对话框实现

1.实现效果: 原始界面:                                       点击按钮之后,显示对话框                点击对话框后的确定按钮后,显示一段文字             布局文件: <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/a

android 33 对话框控件

对话框控件:最多3个按钮. mainActivity.java package com.sxt.day05_09; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.util.Log; import android.view.View; import android