`
xuyuanshuaaa
  • 浏览: 393841 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

android 对话框

阅读更多
当Activity需要临时显示一些信息或者提供一些功能,而创建一个activity又开销太大时,可以考虑一个Dialog
对话框和菜单一样 都是通过activity统一管理的,
1    @Override//回调方法
    protected Dialog onCreateDialog (int id) {
        switch (id) {
        case DIALOG_WELCOME:
            return new AlertDialog.Builder(ex10.this)
                .setIcon(android.R.drawable.ic_dialog_info)
                //内部图片类 android.R.drawable.*
                .setTitle("欢迎")
                .setMessage("欢迎使用本程序!")
                .setPositiveButton("确定",new OnClickListener() {
                    
                    public void onClick(DialogInterface arg0, int arg1) {
                        // 单击确定按钮做的事情。
                    }
                    
                })
                .create();
        default:
            return null;
        }

实现oncreateDialog方法,通过showDialog(int id)传进来的id进行对话框调用返回相应的对话框。
AlertDialog  是最简单的警告对话框。

2   日期选择和时间选择对话框  DatePickerDialog和TimePickerDialog
protected Dialog onCreateDialog (int id) {
        switch (id) {
        case DIALOG_DATEPICKER:
            return new DatePickerDialog(this,
                    new OnDateSetListener() {
                       
                        public void onDateSet(DatePicker v, int y,
                                int m, int d) {
                            /*
                             * 这是设置好日期后的回调函数,
                             * 可以根据设置的内容更新用户界面
                             * 或者系统时间。
                             */
                        }
                     }, c.get(Calendar.YEAR),
                    c.get(Calendar.MONTH), 
                    c.get(Calendar.DAY_OF_MONTH));   
        default:
            return null;
        }
    }

通过showDialog调用。Calender  获取当前日期

3  ProgressDialog  进度框,当在后台进行比较耗时的操作时采用比较好,往往配合handler一起使用。handler就是这种作用
public class ex12 extends Activity {
    ProgressDialog pd;
    Message msg;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //显示Dialog对话框
        showDialog(0);
        //使用handler把线程加入到线程队列中,由于此队列当前为空,所以threadr立即执行
        // 此处handler和runnable是对等的,handler里德handlermessage()和sendMessage()方法是对等的。
        pHandler.post(threadr);
    }
    //匿名内部类
    Handler pHandler = new Handler()
    {
    	public void handleMessage(Message msg)
    	{
    		pd.incrementProgressBy(msg.arg1);
    		pHandler.post(threadr);
    	}
    };
    //匿名内部类
    Runnable threadr =new Runnable(){
    	int i=0;
    	public void run()
    	{
    		i+=1;
    		msg=pHandler.obtainMessage();
    		//使用message的arg1和arg2参数传递消息,系统性能消耗小。
    		msg.arg1=i;
    		if (pd.getProgress() >= 100) {
                /*进度条满了后取消对话框*/
                pd.dismiss();
                //剔除线程
                pHandler.removeCallbacks(threadr);
            } else {
                /*进度条增加一格*/
            	try{
            		Thread.sleep(1000);
            	}
            	catch(Exception e)
            	{
            		e.printStackTrace();
            	}
                pHandler.sendMessage(msg);
            }
    	}
    };   
    @Override
    protected Dialog onCreateDialog (int id) {
            pd = new ProgressDialog(this);
            pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            /*设置进度条格数*/
            pd.setMax(MAXPROGRESS);
            pd.setProgress(0);
            return pd;
    }
}

在新建的线程中发送消息
handler.sendMessage(handler.obtainMessage());
•作为发送消息的参数
handler.sendMessage(handler.obtainMessage());
很容易handler在此过程中,在管理着一切的消息——由他发送,由他接收,由他处理。倘若不叫他管家,如何又说的过去呢。的确,我暗服Android设计师的构思(这只是其强大之一瞥,例如其他在MVC上的封装等),然而从面向对象的角度理解,似乎一切都那么的顺理成章,正如上面所说的,Handler对象就是我们所听过了的对象——管家。

细细说来,handler与线程是分不开的,即handler必附着于一个线程,它正是此线程的管家,它负责处理该线程内所有的消息。

对事件和消息的理解
谈上文正到酣处,却已发现handler已经赤裸裸的呈现在了我的面前,它的神秘面纱已被掀开。正说到消息,顿觉有必要研究研究管家的管理对象,还有其余“事件”的那些事儿。

打个比方:管家正在主人院子里巡视,观察着所有到院里来的热光声电。这时,有人来敲门,这是“事件”,敲门声(信息)传到管家耳中,这是接受消息,去开门时处理消息。从计算机角度说,事件是用户发起的,消息是系统发起的,并由程序处理之。至于消息处理的具体细节,荐:了解回调函数
分享到:
评论

相关推荐

    Android 对话框(Dialog)样式大全以及简单实现

    Android 对话框(Dialog)样式大全以及简单实现 Android 对话框(Dialog)是 Android 应用程序中常用的交互方式之一。它可以用来提示用户、确认操作、显示信息等。Android 对话框有多种样式,可以根据不同的需求选择...

    Android 对话框 (一) 管理对话框

    本文将深入探讨如何管理和使用Android对话框,主要包括其基本概念、创建方式、自定义以及最佳实践。 ### 基本概念 对话框在Android中主要由`android.app.Dialog`类表示,它是`Activity`的一个弹出窗口,通常悬浮在...

    Android对话框源码,十几种动画的对话框

    本资源提供了Android对话框的源码,包含十几种不同的动画效果,可以极大地丰富应用的用户体验。接下来,我们将深入探讨Android对话框的基础知识、自定义对话框以及各种动画效果的应用。 首先,Android系统提供了两...

    FancyAlertDialog-Android,让你的原生android对话框更漂亮。一个库,它将标准的android对话框提升到一个新的级别,并提供多种样式选项。从代码中设置对话框的样式。.zip

    `FancyAlertDialog-Android` 提供了丰富的样式选项,使得原本单调的标准Android对话框得以焕然一新。这个库不仅提供了预设的样式,还允许开发者通过代码动态设置对话框的样式,增强了灵活性和自定义程度。这意味着...

    Android 对话框基本应用详细教程

    一、Android对话框的基本类型 1. **AlertDialog**: 它是最常见的对话框类型,提供了标题、内容和一个或多个按钮。可以通过`AlertDialog.Builder`来创建,设置标题、消息和按钮。 2. **ProgressDialog**: 用于展示...

    Android 对话框(Dialog)大全 建立你自己的对话框

    在Android应用开发中,对话框...总之,Android对话框是用户界面的重要组成部分,熟练掌握各种对话框的用法和自定义技巧,可以提升应用的交互体验。通过不断实践和学习,你可以创建出符合设计规范、功能强大的对话框。

    Android 对话框大全

    ### Android对话框(Dialog)详解 #### 一、引言 在Android开发中,对话框是一种常见的用户交互组件,用于向用户提供临时的信息展示或收集用户的输入。本文将深入探讨Android中的对话框机制,并通过具体的代码示例...

    自定义Android对话框样式示例

    总结,自定义Android对话框是一个灵活的过程,允许开发者根据项目需求调整对话框的样式、内容和行为。通过创建自定义布局,设置主题,以及处理各种事件,我们可以打造出与应用风格一致且用户体验良好的对话框。在...

    Android 对话框

    Android 对话框Android 对话框Android 对话框Android 对话框Android 对话框Android 对话框Android 对话框Android 对话框Android 对话框Android 对话框Android 对话框Android 对话框Android 对话框Android 对话框...

    Android对话框样式

    本文将详细介绍如何实现一个仿iOS样式的Android对话框,并提供相关的代码资源,以帮助开发者们快速创建出美观且符合设计规范的对话框。 在Android原生系统中,对话框通常有几种基本样式:AlertDialog、...

    Android 对话框(Dialog)大全 建立你自己的对话框 附源码

    Android 对话框(Dialog)大全 建立你自己的对话框 附源码 Android 对话框(Dialog)大全 建立你自己的对话框 附源码 Android 对话框(Dialog)大全 建立你自己的对话框 附源码

    Android 对话框的各种使用例子

    通过阅读博客文章和查看源代码,开发者可以深入理解Android对话框的使用,并将其应用到自己的项目中。 总之,理解和熟练掌握Android对话框的使用对于提升用户体验至关重要。通过各种对话框的实例,开发者可以灵活地...

    Android 对话框(Dialog)大全

    ### Android对话框(Dialog)大全详解 #### 一、概述 Android中的对话框是一种常见的用户界面元素,用于在应用中向用户展示重要的信息或获取用户的反馈。Android提供了多种类型的对话框,包括但不限于警告对话框、...

    老罗android视频开发源码和ppt--android对话框介绍.rar

    老罗android视频开发源码和ppt 这是视频配套的源码与PPT, 分了不同的小包 老罗写的, 听说叫罗升阳。

    delphi 10 android 对话框汉化

    标题 "Delphi 10 Android 对话框汉化" 涉及到的是在使用 Delphi 10 开发 Android 应用时如何将应用程序的内置对话框进行本地化,使其支持中文显示。描述中提到的方法是通过一个名为 `FMX.Consts` 的单元来实现的,这...

    Android对话框精粹1

    本文将深入探讨"Android对话框精粹1"中的关键知识点,包括基本对话框类型、自定义对话框以及如何在实际项目中灵活运用。 1. 基本对话框类型: - `AlertDialog`:这是最常用的对话框,可以包含标题、内容和一个或多...

    Android对话框(Dialog)实例

    一、Android对话框基础 1. 对话框类型: - 普通对话框(AlertDialog):最常用的对话框,包含标题、内容和按钮。 - 自定义对话框:允许开发者完全自定义对话框的布局和样式。 - 进度对话框(ProgressDialog):...

    android对话框的使用

    ### Android对话框的使用详解 #### 一、引言 在Android开发过程中,对话框(Dialog)是非常重要的UI组件之一,用于向用户展示提示信息或收集用户反馈等场景。本文将详细介绍Android中对话框的基本使用方法及一些...

    android对话框大集合

    本篇文章将详细介绍各种类型的Android对话框,包括单选、多选、列表以及进度条对话框,并通过一个名为`DialogDemo`的示例项目来深入探讨。 1. 单选对话框(AlertDialog with Radio Buttons) 单选对话框通常用于让...

Global site tag (gtag.js) - Google Analytics