今天研究了一下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
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
发表评论
-
传智播客Android视频教程——第九天
2012-04-26 19:28 1122传智播客Android视频教程——第九天 2012-04-26 ... -
传智播客Android视频教程——第八天
2012-04-24 19:36 699传智播客Android视频教程——第八天 2012-04-24 ... -
传智播客Android视频教程——第七天
2012-04-17 19:52 716传智播客Android视频教程——第七天 2012-04-17 ... -
传智播客Android视频教程——第六天
2012-04-05 18:42 875传智播客Android视频教程——第六天 2012-04-05 ... -
传智播客Android视频教程——第五天
2012-03-31 19:34 751传智播客Android视频教程——第五天 2012-03-31 ... -
传智播客Android视频教程——第四天
2012-03-30 19:59 739传智播客Android视频教程——第四天 2012-03-3 ... -
传智播客Android视频教程——第三天
2012-03-29 19:46 755传智播客Android视频教程 ... -
传智播客Android视频教程——第二天
2012-03-28 19:35 724传智播客Android视频教程——第二天 2012-03-2 ... -
传智播客Android视频教程——第一天
2012-03-27 19:31 801传智播客Android视频教程 ... -
Android修行之路——Android程序设计基础(三)
2012-03-23 19:54 6302012-03-23 4. Service Service即 ... -
Android修行之路——Android程序设计基础(二)
2012-03-22 19:55 7522012-03-22 继续接着昨天 ... -
Android修行之路——Android程序设计基础(一)
2012-03-21 19:20 7292012-03-21 Android程序设计基础: 3.1 ... -
Android修行之路——界面布局
2012-03-20 18:52 800Ctrl+F11能将模拟器横过来。 界面布局: 常用的几个 ...
相关推荐
本资源“安卓Android源码——dialog去除边框代码.zip”提供了一种方法来定制Dialog,以实现无边框的效果。 首先,我们了解Android Dialog的基本结构。Dialog是基于AlertDialog类的,通常由一个对话框主题(style)...
- Dialog是Android中的一个视图,它浮现在应用程序的主窗口之上,通常用于显示警告、确认或者提供额外的交互选项。 - 对话框有两种主要类型:AlertDialog和ProgressDialog。AlertDialog用于展示带有按钮的对话,如...
Dialog是Android系统提供的一种轻量级窗口,它可以浮现在Activity之上,通常用来提示用户做出选择或者显示一些临时信息。Dialog有两种主要类型:AlertDialog和ProgressDialog。AlertDialog通常用于显示一个带有标题...
本资源"安卓Android源码——安卓Android实现Windows风格的Dialog.rar"提供了一种实现方式,帮助开发者在安卓系统上构建出与Windows系统类似风格的对话框。 首先,了解Dialog在Android中的基本使用。在Android SDK中...
在安卓开发中,Dialog对话框是一种常见的用户交互组件,它浮现在应用的主窗口之上,用于展示临时信息或获取用户的确认、输入等操作。本文将深入探讨安卓Android源码中的Dialog对话框,揭示其工作原理及如何自定义和...
在安卓(Android)开发中,Dialog对话框是用户界面(UI)设计中不可或缺的一部分,它用于向用户显示临时信息或需要用户做出决策的情况。在Android源码中,Dialog类及其子类提供了丰富的功能来实现各种对话框样式。...
【BREW编程经验——Dialog机制的使用方式】 BREW(Binary Runtime Environment for Wireless)是一种针对无线设备的应用开发平台,主要用于开发智能手机应用。在BREW环境中,Dialog机制是用于创建和管理用户界面的...
在Android开发中,Dialog是一种常见的用户交互元素,用于在用户界面中显示临时信息或进行简单的交互操作。通常,当我们使用AlertDialog构建一个对话框时,它的默认行为是在用户点击按钮(如"确定"或"取消")后自动...
这份"安卓Android源码——所有Dialog对话框.rar"压缩包很可能包含了各种类型的Dialog实现,这对于我们理解Android系统中Dialog的工作原理以及自定义Dialog的实现方法非常有帮助。 首先,我们要知道Dialog是基于...
在Android开发中,底部弹出Dialog是一种常见的交互方式,它用于显示临时信息或者提供用户一些简短的操作选项。本文将详细讲解如何实现一个带有动画效果的底部弹出Dialog,并通过具体的代码实例进行演示。 首先,...
本资源"安卓Android源码——安卓Android实现Windows风格的Dialog.zip"提供了一种方法,让Android应用能够展示具有Windows样式特征的Dialog。 首先,理解Windows风格的Dialog通常包含的特点:边框、标题、最小化、...
在Android开发中,`Dialog`是一种非常常用的组件,它用于在主界面之上显示一个临时的窗口,用于向用户展示信息或者获取用户的输入。本节我们将深入探讨如何创建和使用列表对话框(List Dialog)。 列表对话框是`...
Dialog是Android系统提供的一个内置组件,用于展示与用户交互的重要信息。要自定义Dialog,我们需要创建一个新的类,继承自Dialog,并重写其onCreate()方法。在onCreate()中,我们可以使用LayoutInflater来加载...
在Android应用开发中,自定义对话框(Dialog)是一种常见的用户交互方式,特别是在涉及到支付功能时,为了提供更好的用户体验,通常会使用底部弹窗来显示支付选项。本篇将详细介绍如何在Android中实现一个自定义的...
【第一部分】历史文章: ...Android学习笔记(五)——Toast提示、Dialog对话框、Menu菜单 Android学习笔记(六)——自定义ListView布局+AsyncTask异步任务 Android学习笔记(七)——数据存储(共享参数Share
各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果...
在Android开发中,实现磨砂透明效果的Dialog是一种常见的需求,它可以为用户界面增添美观且交互性强的元素。本文将详细讲解如何通过自定义Dialog来实现这种效果,并且确保当用户点击Dialog之外的区域时,Dialog能够...
在Android开发中,Dialog是一种非常常见的用户交互组件,它用于在主界面之上显示一个弹出式窗口,通常用于展示警告信息、确认操作或者提供一种选择方式。本篇将重点讲解如何创建并使用单选列表对话框(Single Choice...