AlertDialog的各种用法

先看一下效果图

java代码实现如下:

package com.example.dialog;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.content.DialogInterface;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;

public class MainActivity extends Activity {

	private Button simp_btn = null;
	private Button comp_btn = null;
	private Button list_btn = null;
	private Button date_btn = null;
	private Button time_btn = null;
	private Button progress_btn = null;
	private Button custom_btn = null;
	private String[] place = null;
	private int year, month, day, hour, minute;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		final TextView txt = (TextView) findViewById(R.id.txt);

		// 簡單的Dialog
		simp_btn = (Button) findViewById(R.id.simp_btn);
		simp_btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				AlertDialog.Builder builder = new AlertDialog.Builder(
						MainActivity.this).setTitle("提示")
						.setIcon(R.drawable.ic_launcher)
						.setMessage("這是一個简单对话框");
				builder.create().show();
			}

		});

		// 複雜的Dialog
		comp_btn = (Button) findViewById(R.id.comp_btn);
		comp_btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				AlertDialog.Builder builder = new AlertDialog.Builder(
						MainActivity.this)
						.setTitle("提示")
						.setIcon(R.drawable.ic_launcher)
						.setMessage("這是一個複雜对话框\n確定要退出程序!!")
						.setPositiveButton("確定",
								new DialogInterface.OnClickListener() {

									@Override
									public void onClick(DialogInterface dialog,
											int which) {
										// TODO Auto-generated method stub
										Toast.makeText(MainActivity.this,
												"歡迎下次登錄", Toast.LENGTH_SHORT)
												.show();
										finish();

									}
								}).setNegativeButton("取消", null);
				builder.create().show();
			}

		});

		// 列表Dialog
		list_btn = (Button) findViewById(R.id.list_btn);
		list_btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				place = MainActivity.this.getResources().getStringArray(
						R.array.list);
				final boolean[] chkDefualt = { false, false, true, true, false };
				final List
   
   
    
     list = new ArrayList
    
    
     
     ();
				for (int i = 0; i < chkDefualt.length; i++) {
					if (chkDefualt[i] == true) {
						list.add(place[i]);
					}
				}

				AlertDialog.Builder builder = new AlertDialog.Builder(
						MainActivity.this)
						.setTitle("选择你要去的景点")
						.setIcon(R.drawable.ic_launcher)
						.setMultiChoiceItems(place, chkDefualt,
								new OnMultiChoiceClickListener() {

									@Override
									public void onClick(DialogInterface dialog,
											int which, boolean isChecked) {
										// TODO Auto-generated method stub
										if (isChecked) {
											if (list.indexOf(place[which]) <= 0)
												list.add(place[which]);
										} else {
											if (list.indexOf(place[which]) >= 0)
												list.remove(place[which]);
										}
									}
								})
						.setPositiveButton("確定",
								new DialogInterface.OnClickListener() {

									@Override
									public void onClick(DialogInterface dialog,
											int which) {
										// TODO Auto-generated method stub
										StringBuilder builder1 = new StringBuilder();
										for (int i = 0; i < list.size(); i++)
											builder1.append("\n" + list.get(i));
										Toast.makeText(
												MainActivity.this,
												"你选择了:\n" + builder1.toString(),
												Toast.LENGTH_LONG).show();

									}
								}).setNegativeButton("取消", null);
				builder.create().show();
			}

		});

		// 自定义对话框
		custom_btn = (Button) findViewById(R.id.custom_btn);
		custom_btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				final View view = LayoutInflater.from(MainActivity.this)
						.inflate(R.layout.view, null);
				AlertDialog.Builder builder = new AlertDialog.Builder(
						MainActivity.this)
						.setTitle("提示")
						.setIcon(R.drawable.ic_launcher)
						.setView(view)
						.setPositiveButton("登陆",
								new DialogInterface.OnClickListener() {

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

										TextView user = (TextView) view
												.findViewById(R.id.user_etxt);
										TextView pwd = (TextView) view
												.findViewById(R.id.pwd_etxt);
										String message = "用户名:"
												+ user.getText() + "\n密码:"
												+ pwd.getText();
										txt.setText(message);
										Toast.makeText(MainActivity.this,
												"你已成功登陆", Toast.LENGTH_LONG)
												.show();

									}
								}).setNegativeButton("取消", null);
				builder.create().show();
			}

		});

		// 日期对话框
		date_btn = (Button) findViewById(R.id.date_btn);
		Calendar calendar = Calendar.getInstance();
		year = calendar.get(Calendar.YEAR);
		month = calendar.get(Calendar.MONTH);
		day = calendar.get(Calendar.DAY_OF_MONTH);
		date_btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Dialog dialog = new DatePickerDialog(MainActivity.this,
						new OnDateSetListener() {

							@Override
							public void onDateSet(DatePicker arg0, int arg1,
									int arg2, int arg3) {
								// TODO Auto-generated method stub
								txt.setText(arg1 + "年" + (arg2 + 1) + "月"
										+ arg3 + "日");
							}
						}, year, month, day);
				dialog.show();
			}
		});

		// 时间对话框
		Calendar calendar_ = Calendar.getInstance();
		time_btn = (Button) findViewById(R.id.time_btn);
		hour = calendar_.get(Calendar.HOUR_OF_DAY);
		minute = calendar_.get(Calendar.MINUTE);
		time_btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Dialog dialog = new TimePickerDialog(MainActivity.this,
						new OnTimeSetListener() {

							@Override
							public void onTimeSet(TimePicker arg0, int arg1,
									int arg2) {
								// TODO Auto-generated method stub
								txt.setText("时间" + arg1 + ":" + arg2);
							}
						}, hour, minute, true);
				dialog.show();
			}
		});

		// 模糊进度条
		progress_btn = (Button) findViewById(R.id.progress_btn);
		progress_btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				final int MAX = 568;
				final ProgressDialog progressDialog = new ProgressDialog(
						MainActivity.this);
				progressDialog.setTitle("加载文件");
				progressDialog.setMessage("努力奋斗中......");
				progressDialog
						.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
				progressDialog.setMax(MAX);

				progressDialog.setButton(ProgressDialog.BUTTON_POSITIVE,
						"后台处理", new DialogInterface.OnClickListener() {

							@Override
							public void onClick(DialogInterface arg0, int arg1) {
								// TODO Auto-generated method stub
								progressDialog.dismiss();
							}
						});
				progressDialog.show();
				new Thread() {
					public void run() {
						// TODO Auto-generated method stub
						for (int i = 0; i < MAX; i++) {
							try {
								Thread.sleep(10);
								progressDialog.setProgress(i);
							} catch (Exception e) {
								// TODO: handle exception
							}
						}
						try {
							progressDialog.setProgress(MAX);
							Thread.sleep(1000);
						} catch (Exception e) {
							// TODO: handle exception
						}
						progressDialog.dismiss();

					}
				}.start();

			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

}

    
    
   
   

xml代码如下:


   
   

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    



   
   


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值