您的位置:首页 > 移动开发 > Android开发

Android笔记---常用控件之对话框

2012-10-16 14:37 393 查看


Android笔记---常用控件之对话框

Android中实现对话框可以使用AlertDialog.Builder类,还可以通过自定义对话框。如果对话框设置了按钮,那么需要对其设置时间监听OnClickListener。

一、自定义对话框

首先在布局中定义两个TextView和EditView控件,然后通过inflate方法来创建对话框。

dialog.xml布局如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- android:gravity 设置文本位置,如设置成“center”,文本将居中显示。
android:textAppearance 设置文字外观。如“?android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观, ?表示系统是否有这种外观,否则使用默认的外观。 可设置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/ textAppearanceLargeInverse/textAppearanceMedium/ textAppearanceMediumInverse/textAppearanceSmall/
textAppearanceSmallInverse --><TextView android:id="@+id/username" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dip" android:layout_marginRight="20dip" android:text="@string/username" android:gravity="left"
android:textAppearance="?android:attr/textAppearanceMedium" /><EditText android:id="@+id/username" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dip" android:layout_marginRight="20dip" android:autoText="false"
android:capitalize="none" android:gravity="fill_horizontal" android:textAppearance="?android:attr/textAppearanceMedium" /><TextView android:id="@+id/password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dip"
android:layout_marginRight="20dip" android:text="@string/password" android:gravity="left" android:textAppearance="?android:attr/textAppearanceMedium" /><EditText android:id="@+id/password" android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_marginLeft="20dip" android:layout_marginRight="20dip" android:autoText="false" android:capitalize="none"

android:password="true" android:gravity="fill_horizontal" android:textAppearance="?android:attr/textAppearanceMedium" /></LinearLayout>

二、使用AlertDialog来创建对话框

使用AlertDialog创建对话框需要以下几个方法,完整实现过程如下。

□ setTitle(): 给对话框设置title

□ setIcon(): 给对话框设置图标

□ setMessage(): 给对话框设置提示信息

    □ setItems(): 设置对话框要显示的一个list,一般用于显示几个命令时

□ setSingleChoiceItems(): 设置对话框来显示一个单选的list

□ setMultiChoiceItems(): 用来设置对话框显示一系列的复选框

□ setPositiveButton(): 给对话框添加“YES“按钮

□ setNegativeButton(): 给对话框添加”NO“按钮

Activity具体代码实现如下:

package com.hanfeng.google;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.app.ProgressDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;public
class Activity01 extends Activity { ProgressDialog m_Dialog; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Dialog dialog = new
AlertDialog.Builder(Activity01.this) .setTitle("登录提示") //设置标题 .setMessage("登陆后才能继续") //设置内容 .setPositiveButton("确定", //设置确定按钮 new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated
method stub //点击确定按钮转向 LayoutInflater inflater = LayoutInflater.from(Activity01.this); //得到自定义对话框 final View DialogView = inflater.inflate(R.layout.dialog, null); //创建对话框 AlertDialog alertDialog = new AlertDialog.Builder(Activity01.this) .setTitle("登陆框") .setView(DialogView)
//设置自定义对话框样式 .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub //输入完成,点击确定登录 m_Dialog = ProgressDialog.show(Activity01.this, "请等待...", "系统正在登录...",true);
new Thread() { public void run(){ try { sleep(3000); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ //登录结束,取消m_Dialog对话框 m_Dialog.dismiss(); } } }.start(); } }).setNegativeButton("取消", new DialogInterface.OnClickListener()
{ @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub //点击取消后推出Activity01 Activity01.this.finish(); } }).create();//创建 alertDialog.show(); } }).setNegativeButton("退出", new DialogInterface.OnClickListener()
{ @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Activity01.this.finish(); } }).create();//创建按钮 //显示对话框 dialog.show(); }}

运行效果如下:







#Android
举报 浏览(145) 评论 转载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: