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

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(); }}


                  运行效果如下:

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值