`
凌紫冥
  • 浏览: 25495 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android修行之路——Dialog

 
阅读更多
  今天研究了一下Android的对话框,照着书上敲出来了一个简单的对话框。

DialogActivity.java:

1 package com.jin;
2
3 import android.app.Activity;
4 import android.app.AlertDialog;
5 import android.app.Dialog;
6 import android.app.ProgressDialog;
7 import android.content.DialogInterface;
8 import android.os.Bundle;
9 import android.view.LayoutInflater;
10 import android.view.View;
11
12 public class DialogActivity extends Activity {
13    
14     ProgressDialog m_Dialog;
15    
16     @Override
17     public void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.main);
20        
21         Dialog dialog = new AlertDialog.Builder(DialogActivity.this)
22             .setTitle("登陆提示")//设置标题
23             .setMessage("这里需要登录!")//设置内容
24             .setPositiveButton("确定",//设置确定按钮
25                     new DialogInterface.OnClickListener(){
26                         public void onClick(DialogInterface dialog, int whichButton){
27                             //点击”确定“转向登陆框
28                             LayoutInflater factory = LayoutInflater.from(DialogActivity.this);
29                            
30                             //得到自定义对话框
31                             final View DialogView = factory.inflate(R.layout.dialog, null);
32                            
33                             //创建对话框
34                             AlertDialog dlg = new AlertDialog.Builder(DialogActivity.this)
35                                 .setTitle("登陆框")
36                                 .setView(DialogView)//设置自定义对话框的样式
37                                 .setPositiveButton("确定",//设置”确定“按钮
38                                         new DialogInterface.OnClickListener(){//设置事件监听
39                                             public void onClick(DialogInterface dialog, int whichButton){
40                                                 //输入完成后,点击”确定“开始登陆
41                                                 m_Dialog = ProgressDialog.show(DialogActivity.this, "请等待...", "正在为你登陆...", true);
42                                                
43                                                 new Thread(){
44                                                     public void run(){
45                                                         try{
46                                                             sleep(3000);
47                                                         }catch(Exception e){
48                                                             e.printStackTrace();
49                                                         }finally{
50                                                             //登陆结束,取消m_Dialog对话框
51                                                             m_Dialog.dismiss();
52                                                         }
53                                                     }
54                                                     }.start();
55                                                 }
56                                 }).setNegativeButton("取消",//设置”取消“按钮
57                                         new DialogInterface.OnClickListener(){
58                                             public void onClick(DialogInterface dialog, int whichButton){
59                                                 //点击”取消“按钮之后退出程序
60                                                 DialogActivity.this.finish();
61                                             }
62                                         }).create();//创建
63                                         dlg.show();//显示
64                         }
65                        
66             }).setNeutralButton("退出",
67                     new DialogInterface.OnClickListener(){
68                         public void onClick(DialogInterface dialog, int whichButton){
69                             //点击”退出“按钮之后退出程序
70                             DialogActivity.this.finish();
71                         }
72                     }).create();//创建按钮
73                     dialog.show();
74     }
75 }
然后是dialog.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3     android:layout_width="match_parent"
4     android:layout_height="match_parent"
5     android:orientation="vertical" >
6    
7     <TextView
8 android:id="@+id/username"
9         android:layout_height="wrap_content"
10         android:layout_width="wrap_content"
11         android:layout_marginLeft="20dip"
12         android:layout_marginRight="20dip"
13        
14         android:text="@string/username"
15        
16         android:gravity="left"
17         android:textAppearance="?android:attr/textAppearanceMedium" />
18    
19     <EditText
20 android:id="@+id/un"
21         android:layout_width="fill_parent"
22         android:layout_height="wrap_content"
23         android:layout_marginLeft="20dip"
24         android:layout_marginRight="20dip"
25         android:scrollHorizontally="true"
26         android:autoText="false"
27         android:hint="@string/unhint"
28         android:inputType="text"
29         android:capitalize="none"
30         android:gravity="fill_horizontal"
31         android:textAppearance="?android:attr/textAppearanceMedium" />
32    
33     <TextView
34 android:id="@+id/password"
35         android:layout_width="wrap_content"
36         android:layout_height="wrap_content"
37         android:layout_marginLeft="20dip"
38         android:layout_marginRight="20dip"
39        
40         android:text="@string/password"
41         android:gravity="left"
42         android:textAppearance="?android:attr/textAppearanceMedium" />
43    
44     <EditText
45 android:id="@+id/psw"
46         android:layout_width="fill_parent"
47         android:layout_height="wrap_content"
48         android:layout_marginLeft="20dip"
49         android:layout_marginRight="20dip"
50         android:scrollHorizontally="true"
51         android:autoText="false"
52         android:capitalize="none"
53         android:gravity="fill_horizontal"
54         android:hint="@string/pswhint"
55         android:inputType="textPassword"
56         android:password="true"
57         android:textAppearance="?android:attr/textAppearanceMedium" />
58        
59 </LinearLayout>
运行效果:






在运行的过程中,一直报错,找不到原因,后来,终于发现,在dialog.xml中把EditText写成了EditView。粗心惹的祸啊,浪费了不少时间。

03-19 11:12:05.748: E/AndroidRuntime(368): android.view.InflateException: Binary XML file line #19: Error inflating class EditView
  • 大小: 82.8 KB
  • 大小: 93.1 KB
  • 大小: 77.4 KB
分享到:
评论

相关推荐

    安卓Android源码——dialog去除边框代码.zip

    本资源“安卓Android源码——dialog去除边框代码.zip”提供了一种方法来定制Dialog,以实现无边框的效果。 首先,我们了解Android Dialog的基本结构。Dialog是基于AlertDialog类的,通常由一个对话框主题(style)...

    安卓Android源码——DialogShow.zip

    - Dialog是Android中的一个视图,它浮现在应用程序的主窗口之上,通常用于显示警告、确认或者提供额外的交互选项。 - 对话框有两种主要类型:AlertDialog和ProgressDialog。AlertDialog用于展示带有按钮的对话,如...

    安卓Android源码——(Dialog对话框).zip

    Dialog是Android系统提供的一种轻量级窗口,它可以浮现在Activity之上,通常用来提示用户做出选择或者显示一些临时信息。Dialog有两种主要类型:AlertDialog和ProgressDialog。AlertDialog通常用于显示一个带有标题...

    安卓Android源码——安卓Android实现Windows风格的Dialog.rar

    本资源"安卓Android源码——安卓Android实现Windows风格的Dialog.rar"提供了一种实现方式,帮助开发者在安卓系统上构建出与Windows系统类似风格的对话框。 首先,了解Dialog在Android中的基本使用。在Android SDK中...

    安卓Android源码——(Dialog对话框).rar

    在安卓开发中,Dialog对话框是一种常见的用户交互组件,它浮现在应用的主窗口之上,用于展示临时信息或获取用户的确认、输入等操作。本文将深入探讨安卓Android源码中的Dialog对话框,揭示其工作原理及如何自定义和...

    安卓Android源码——所有Dialog对话框.zip

    在安卓(Android)开发中,Dialog对话框是用户界面(UI)设计中不可或缺的一部分,它用于向用户显示临时信息或需要用户做出决策的情况。在Android源码中,Dialog类及其子类提供了丰富的功能来实现各种对话框样式。...

    BREW编程经验——Dialog机制的使用方式.doc

    【BREW编程经验——Dialog机制的使用方式】 BREW(Binary Runtime Environment for Wireless)是一种针对无线设备的应用开发平台,主要用于开发智能手机应用。在BREW环境中,Dialog机制是用于创建和管理用户界面的...

    Android 控制关闭Dialog

    在Android开发中,Dialog是一种常见的用户交互元素,用于在用户界面中显示临时信息或进行简单的交互操作。通常,当我们使用AlertDialog构建一个对话框时,它的默认行为是在用户点击按钮(如"确定"或"取消")后自动...

    安卓Android源码——所有Dialog对话框.rar

    这份"安卓Android源码——所有Dialog对话框.rar"压缩包很可能包含了各种类型的Dialog实现,这对于我们理解Android系统中Dialog的工作原理以及自定义Dialog的实现方法非常有帮助。 首先,我们要知道Dialog是基于...

    Android 底部弹出dialog+动画

    在Android开发中,底部弹出Dialog是一种常见的交互方式,它用于显示临时信息或者提供用户一些简短的操作选项。本文将详细讲解如何实现一个带有动画效果的底部弹出Dialog,并通过具体的代码实例进行演示。 首先,...

    安卓Android源码——安卓Android实现Windows风格的Dialog.zip

    本资源"安卓Android源码——安卓Android实现Windows风格的Dialog.zip"提供了一种方法,让Android应用能够展示具有Windows样式特征的Dialog。 首先,理解Windows风格的Dialog通常包含的特点:边框、标题、最小化、...

    15. android dialog ——列表对话框

    在Android开发中,`Dialog`是一种非常常用的组件,它用于在主界面之上显示一个临时的窗口,用于向用户展示信息或者获取用户的输入。本节我们将深入探讨如何创建和使用列表对话框(List Dialog)。 列表对话框是`...

    Android自定义显示内容的Dialog

    Dialog是Android系统提供的一个内置组件,用于展示与用户交互的重要信息。要自定义Dialog,我们需要创建一个新的类,继承自Dialog,并重写其onCreate()方法。在onCreate()中,我们可以使用LayoutInflater来加载...

    Android支付底部弹窗自定义dialog

    在Android应用开发中,自定义对话框(Dialog)是一种常见的用户交互方式,特别是在涉及到支付功能时,为了提供更好的用户体验,通常会使用底部弹窗来显示支付选项。本篇将详细介绍如何在Android中实现一个自定义的...

    Android学习笔记(十)——实现新闻列表

    【第一部分】历史文章: ...Android学习笔记(五)——Toast提示、Dialog对话框、Menu菜单 Android学习笔记(六)——自定义ListView布局+AsyncTask异步任务 Android学习笔记(七)——数据存储(共享参数Share

    各种android弹出dialog效果以及各种dialog样式

    各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果...

    android 磨砂透明效果的dialog

    在Android开发中,实现磨砂透明效果的Dialog是一种常见的需求,它可以为用户界面增添美观且交互性强的元素。本文将详细讲解如何通过自定义Dialog来实现这种效果,并且确保当用户点击Dialog之外的区域时,Dialog能够...

    17. android dialog —— 单选列表对话框

    在Android开发中,Dialog是一种非常常见的用户交互组件,它用于在主界面之上显示一个弹出式窗口,通常用于展示警告信息、确认操作或者提供一种选择方式。本篇将重点讲解如何创建并使用单选列表对话框(Single Choice...

Global site tag (gtag.js) - Google Analytics