AndroidUI组件之AlertDialog

package com.gc.alertdialogdemo;
/**
 * AlertDialog:
 * 1、AlertDialog的功能很强大,它可以生成各种内容的对话框,实际上AlertDialog生成的
 * 的对话框总可以分为4个区域:(1)图标区(2)标题区(3)内容区(3)按钮区。
 * 2、创建一个对话框需要经过如下几个步骤:
 * (1)使用创建AlertDialog.Builder对象。
 * (2)调用AlertDialog.Builder的setTitle()或setCustomTitle()方法设置标题
 * (3)调用AlertDialog.Builder的setIcon()方法设置标题
 * (4)调用AlertDialog.Builder的相关设置方法设置对话框内容
 * (5)调用AlertDialog.Builder的setPositiveButton()、setNegativeButton()或setNeutralButton()方法添加多个按钮
 * (6)调用AlertDialog.Builder的create()方法创建AlertDialog对象,再调用AlertDialog对象的show()方法将该对话框显示出来。
 * 3、AlertDialog提供了如下6种方法来指定对话框内容:
 * (1)setMessage():设置对话内容为简单文本内容。
 * (2)setItems():设置对话框内容为简单列表项
 * (3)setSingleChoiceItems():设置对话框内容为单选列表项
 * (4)setMultiChoiceItems():设置对话框内容为多选列表项
 * (5)setAdapter():设置对话框内容为自定义列表项
 * (6)setView():设置对话框内容为自定义View.
 *
 */
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.TableLayout;
import android.widget.TextView;
/**
 *
 * @author Android将军
 *
 */
public class MainActivity extends Activity {

	public TextView show;
	private String[] items=new String[]
			{
			"Android将军",
			"ios将军",
			"Cocos2d-x将军",
			"将军"
			};
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		show=(TextView)findViewById(R.id.show);
	}
	public void customView(View source)
	{
		TableLayout loginForm=(TableLayout)getLayoutInflater().inflate(R.layout.login, null);
		new AlertDialog.Builder(this)
		.setTitle("自定义View对话框")
		//设置图标
		.setIcon(R.drawable.ic_launcher)
		.setView(loginForm)
		.setPositiveButton("登录", new OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub

			}
		})
		.setNegativeButton("取消", new OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub

			}
		})
		.create()
		.show();
	}
	public void customList(View source)
	{
		AlertDialog.Builder builder=new AlertDialog.Builder(this)
		//设置对话框标题
		.setTitle("自定义列表对话框")
		//设置图标
		.setIcon(R.drawable.ic_launcher)
		.setAdapter(new ArrayAdapter<String>(this, R.layout.array_item, items), null);
		setPositiveButton(builder);
		setNeutralButton(builder);
		//为AlertDialog.Builder添加“取消”按钮
		setNegativeButton(builder).create().show();
	}
	public void multiChoice(View source)
	{
		AlertDialog.Builder builder=new AlertDialog.Builder(this)
		//设置对话框标题
				.setTitle("多选列表对话框")
				//设置图标
				.setIcon(R.drawable.ic_launcher)
				.setMultiChoiceItems(items, new boolean[]{false,true,false,true}, null);
		setPositiveButton(builder);
		setNeutralButton(builder);
		//为AlertDialog.Builder添加“取消”按钮
		setNegativeButton(builder).create().show();
	}
	public void singleChoice(View source)
	{
		AlertDialog.Builder builder=new AlertDialog.Builder(this)
		//设置对话框标题
				.setTitle("单选列表对话框")
				//设置图标
				.setIcon(R.drawable.ic_launcher)
				.setSingleChoiceItems(items, 1, new OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						// TODO Auto-generated method stub
						show.setText("你选中了《"+items[which]+"》");
					}
				});
		setPositiveButton(builder);
		setNeutralButton(builder);
		//为AlertDialog.Builder添加“取消”按钮
		setNegativeButton(builder).create().show();

	}
	public void simpleList(View source)
	{
		AlertDialog.Builder builder=new AlertDialog.Builder(this)
		//设置对话框标题
		.setTitle("简单列表对话框")
		//设置图标
		.setIcon(R.drawable.ic_launcher)
		//设置简单的列表项内容
		.setItems(items, new OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				show.setText("你选中了《"+items[which]+"》");

			}
		});
		setPositiveButton(builder);
		setNeutralButton(builder);
		//为AlertDialog.Builder添加“取消”按钮
		setNegativeButton(builder).create().show();
	}
	public void simple(View source)
	{
		AlertDialog.Builder builder=new AlertDialog.Builder(this)
		//设置对话框标题
		.setTitle("简单对话框")
		//设置图标
		.setIcon(R.drawable.ic_launcher)
		.setMessage("对话框的测试内容\n第二行内容");
		//为AlertDialog.Builder添加“确定”按钮
		setPositiveButton(builder);
		setNeutralButton(builder);
		//为AlertDialog.Builder添加“取消”按钮
		setNegativeButton(builder).create().show();

	}
	private Builder setNeutralButton(Builder builder) {
		// TODO Auto-generated method stub

		return builder.setNeutralButton("修饰", new OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				show.setText("单击了【修饰】按钮!");
			}
		});
	}
	private Builder setNegativeButton(Builder builder) {
		// 调用setNegativeButton方法添加“确定”按钮
		return builder.setNegativeButton("取消", new OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				show.setText("单击了【取消】按钮!");
			}
		});
	}
	private Builder setPositiveButton(Builder builder) {

		// 调用setPositiveButton方法添加“确定”按钮
		return builder.setPositiveButton("确定", new OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				show.setText("单击了【确定】按钮!");
			}
		});
	}

}

几个布局文件如下:

activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

      <TextView
       android:id="@+id/show"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"

       />
   <Button
       android:onClick="simple"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="显示简单对话框"
       />
   <Button
       android:onClick="simpleList"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="简单列表项对话框"
       />
   <Button
       android:onClick="singleChoice"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="单选列表项对话框"
       />
   <Button
       android:onClick="multiChoice"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="多选列表项对话框"
       />
   <Button
       android:onClick="customList"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="自定义列表项对话框"
       />
    <Button
       android:onClick="customView"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="自定义View对话框"
       />
</LinearLayout>

login.xml

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/loginForm"
    android:orientation="vertical"
    >
    <TableRow>
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="用户名:"
            android:textSize="10pt"
            />
        <!-- 输入用户名的文本框 -->
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="请填写登录账号"
            android:selectAllOnFocus="true"
            />
    </TableRow>
    <TableRow>
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="密码:"
            android:textSize="10pt"
            />
        <!-- 输入密码的文本框 -->
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="请填写密码"
            android:password="true"
            />
    </TableRow>
    <TableRow>
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="电话号码:"
            android:textSize="10pt"

            />
        <!-- 输入电话号码的文本框 -->
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="请填写你的电话号码"
            android:selectAllOnFocus="true"
            android:phoneNumber="true"
            />
    </TableRow>

</TableLayout>

array_item.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

</TextView>

部分效果截图:

转载请注明出处:http://blog.csdn.net/android_jiangjun/article/details/25739587

AndroidUI组件之AlertDialog

时间: 2024-10-22 02:13:01

AndroidUI组件之AlertDialog的相关文章

AndroidUI组件之TextSwitcher

package com.gc.textswitcherdemo; /* * 文本切换器(TextSwitcher): * 1.TextSwitcher继承了ViewSwitcher,因此它具有与ViewSwitcher相同的特征 * 可以在切换View组件时使用动画效果.与ImageSwitcher相似的是,使用TextSwitcher * 也需要设置一个ViewFactory.与ImageSwitcher不同的是,TextSwitcher所需的 * ViewFactory的makeView()

AndroidUI组件之AdapterViewFilpper

package com.gc.adapterviewflipperdemo; /** * 功能:自动播放的图片库 * @author Android将军 */ /* * 1.AdapterViewFilpper继承了AdapterViewAnimator,它也会 * 显示Adapter提供的多个View组件,但它每次只能显示一个View组件 * ,程序可通过showPrevious()和showNext()方法控制该组件显示 * 上一个.下一个组件. * 2.AdapterViewFilpper

AndroidUI组件之ImageSwitcher

今天继续AndroidUI组件的讲解(写博客只是为了巩固与继续学习知识----工欲善其事,必先利其器!) 下面是主Activity的源码,里面附含知识点的讲解,在前面的博客里已经说明,简单的知识点我会以代码注释的形式讲解,好了,不废话了: package com.gc.imageswitcherdemo; /* * 图像切换器(ImageSwitcher)的功能与用法 * * 1.ImageSwitcher继承了ViewSwitcher,因此它具有与ViewSwitcher相同的特征 * :可以

AndroidUI组件之ProgressBar

package com.gc.progressbar; /* * 1.ProgressBar组件也是一组重要的组件,ProgressBar本身代表了进度条组件, * 它还派生了两个常用的组件:SeekBar和RatingBar. * 2.进度条的功能与用法: * 进度条通常用于向用户显示某个耗时操作完成的百分比,进度条可以动态地显示进度 * 因此避免长时间地执行某个耗时操作时,让用户感觉程序失去了响应. * Android支持如下几种风格的进度条,通过style属性可以为ProgressBar指

android-UI组件实例大全(六)------ImageView图像视图

图像视图:ImageView 继承view类,用于在屏幕上显示任何Drawable对象,通常用来显示图片: 这里的话我们介绍一些比较常用的属性: Path 1: android:adjustViewBounds:设置ImageView是否调整自己的边界来保持所显示图片的长宽比 !!!下面的这两个属性需要adjustViewBounds为ture,不然是不起作用的哦! android:maxHeight:设置ImageView的最大高度 android:maxWidth:设置ImageView的最

AndroidUI组件之ActionBar

有一段时间没有写博文了,发现自己的博文的完整度不是非常好.就拿AndroidUI组件这一块.一直没有更新完.我会尽快更新.好了.不多说了,今天来看一下ActionBar. 依照以往的作风.知识点都以代码凝视的形式在源码中. package com.gc.actionbardemo; /** * 1.活动条(ActionBar)是Android3.0的重要更新之中的一个. ActionBar位于传统标题栏的位置 * 也就是显示的屏幕的顶部.ActionBar可显示应用的图标和Activity标题-

AndroidUI组件之RoomButton

<!-- 知识点汇总: 1.Button与ImageButton的区别在于,Button生成的按钮上显示文字 而ImageButton上则显示图片.需要指出的是:为ImageButton按 钮指定 android:text属性没用(ImageButton的本质是ImageView),即使指定 了该属性,图片按钮上也不会显示任何文字 2.ImageButton 派生了一个ZoomButton ,ZoomButton可以代表"放大". "缩小"两个按钮.ZoomB

AndroidUI组件之GridView

java 代码如下(简单的知识点我会以注释的形式讲解): package com.gc.gridviewdemo; /** * @author Android将军 */ /** * 知识点讲解: * 1.GridView 用于在界面上按行.列分布的方式来显示多个组件. * GridView和ListView有共同的父类:AbsListView,因此GridView * 和ListView具有很高的相似性,它们都是列表项. * GridView与ListView的唯一区别在于:ListView只显

AndroidUI组件之TabHost

package com.gc.tabhost; /** * @author Android将军 * * * * 1.TabHost是一种非常实用的组件,TabHost可以很方便地在窗口上放置 * 多个标签页,每个标签页相当于获得了一个与外部容器相同大小的组件 * 摆放区域.通过这种方式,就可以在一个容器里放置更多组件. * 2.与TabHost结合使用的还有如下组件: * TabWidget:代表选项卡的标签条. * TabSpec:代表选项卡的一个Tab页面. * 3.TabHost仅仅是一个