Android对话框详细总结

本文介绍了Android开发中五种对话框的实现方式,包括按钮对话框、列表对话框、单选对话框、多选对话框及自定义对话框,并提供了详细的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学习Android开发,总结了Android对话框的各种类型。以下是各种类型的详细代码,源码也可以到下面地址中下载。

http://download.youkuaiyun.com/detail/lxywl09/8545373


0——主页面:



1——弹出按钮的对话框:



2——添加列表对话框:



3——弹出单选对话框:



4——弹出多选对话框:



5——弹出自定义对话框:


package com.develop.camera;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

/**
 * Android视图
 * 
 * @author lxy
 * @date 2015/03/28
 */

public class DialogDemo extends Activity {

	private Button btn_dialog;
	private Button btn_addlist;
	private Button btn_singlechoice;
	private Button btn_multichoice;
	private Button btn_selfdefine;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 显示界面
		setContentView(R.layout.main);

		btn_dialog = (Button) findViewById(R.id.btn_dialog);
		// 点击按钮后创建AlertDialog对话框
		btn_dialog.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// 先创建对话框构造器
				AlertDialog.Builder builder = new AlertDialog.Builder(
						DialogDemo.this);
				// 创建完后设置对话框的属性
				// 标题
				builder.setMessage("这是你弹出的对话框")
						// 不可取消(即返回键不能取消此对话框)
						.setCancelable(false)
						// 设置第一个按钮的标签及其事件监听器
						.setPositiveButton("Positive",
								new DialogInterface.OnClickListener() {
									public void onClick(DialogInterface dialog,
											int id) {
										// 加入自己的行为
									}
								})
						// 设置第二个按钮的标签及其事件监听器
						.setNegativeButton("Negative",
								new DialogInterface.OnClickListener() {
									public void onClick(DialogInterface dialog,
											int id) {
										// 加入自己的行为
									}
								});
				// 用对话框构造器创建对话框
				AlertDialog alert = builder.create();
				// 显示对话框
				alert.show();
			}

		});
		/**
		 * 添加一个列表按钮。为了添加一系列可选择的列表到AlertDialog,可以使用setItems()方法。
		 * 首先,用setTitle(CharSequence)方法设置对话框的标题。 然后,调用setItems()来添加一系列可选择项,
		 * 这个方法接收可选项的显示内容数组以及一个定义当用户选中一个项目时
		 * 所进行的动作的DialogInterface.OnClickListener事件监听器。
		 */
		btn_addlist = (Button) findViewById(R.id.btn_addlist);
		btn_addlist.setOnClickListener(new OnClickListener() {
			public void onClick(View view) {
				final CharSequence[] items = { "学生", "律师", "教师", "码农" };
				AlertDialog.Builder builder = new AlertDialog.Builder(
						DialogDemo.this);
				builder.setTitle("What's your job?").setItems(items,
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog, int item) {
								Toast.makeText(getApplicationContext(),
										items[item], Toast.LENGTH_SHORT).show();
							}
						});
				AlertDialog alert = builder.create();
				alert.show();
			}
		});

		btn_singlechoice = (Button) findViewById(R.id.btn_singlechoice);
		btn_singlechoice.setOnClickListener(new OnClickListener() {
			public void onClick(View view) {
				final CharSequence[] items = { "NanJing", "ShangHai",
						"YanChen", "Other.." };
				AlertDialog.Builder builder = new AlertDialog.Builder(
						DialogDemo.this);
				builder.setTitle("Where do you live?");
				builder.setSingleChoiceItems(items, -1,
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog, int item) {
								Toast.makeText(getApplicationContext(),
										items[item], Toast.LENGTH_SHORT).show();
							}
						});
				AlertDialog alert = builder.create();
				alert.show();
			}
		});

		btn_multichoice = (Button) findViewById(R.id.btn_multichoice);
		btn_multichoice.setOnClickListener(new OnClickListener() {
			public void onClick(View view) {
				final String[] langs = { "海贼王", "名侦探柯南", "火影忍者", "死神" };
				final boolean[] selected = new boolean[] { true, false, false,
						false };// 一个存放Boolean值的数组
				new AlertDialog.Builder(DialogDemo.this)
						.setTitle("你喜欢哪些动漫?")
						// 标题
						.setMultiChoiceItems(
								langs,
								selected,
								new DialogInterface.OnMultiChoiceClickListener() {// 设置多选条目
									public void onClick(DialogInterface dialog,
											int lang, boolean isChecked) {
										Toast.makeText(getApplicationContext(),
												langs[lang], Toast.LENGTH_SHORT)
												.show();
									}
								})
						.setPositiveButton("确定",
								new DialogInterface.OnClickListener() {
									public void onClick(DialogInterface dialog,
											int which) {
										// do something
									}
								}).show();
			}
		});

		/**
		 * 
		 * @author LXY 需要注意的地方: 1)最下面在对话框布局文件上为了找到image及text组件时,是使用的
		 *         dialog.findViewById,不然会程序会出现异常而退出!
		 *         2)最后不要忘了dialog.show();不然什么都看不到。
		 */
		btn_selfdefine = (Button) findViewById(R.id.btn_selfdefine);
		btn_selfdefine.setOnClickListener(new OnClickListener() {
			public void onClick(View view) {
				Dialog dialog = new Dialog(DialogDemo.this);

				dialog.setContentView(R.layout.custom_dialog);
				dialog.setTitle("自定义对话框");
				TextView text = (TextView) dialog.findViewById(R.id.text);
				text.setText("Hello, 这是自定义对话框!");
				ImageView image = (ImageView) dialog.findViewById(R.id.image);
				image.setImageResource(R.drawable.picture_view);

				dialog.show();
			}
		});

	};

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值