Android学习:用户界面UI之AlertDialog

        对话框是程序运行中的弹出窗口。Android系统提供了四种对话框:告警对话框(AlertDialog)、进度对话框(ProgressDialog)、日期选择对话框(DatePickerDialog)、时间选择对话框(TimerPickerDialog)。

 

        AlertDialog

        AlertDialog是一个提示窗口,要求用户做出选择。对话框中一般会有几个选择按钮、标题信息和提示信息。告警对话框可以扩展为普通告警对话框、列表对话框、单选对话框、多选对话框。

        在程序中创建对话框需要如下步骤:

        1、获得AlertDialog的静态内部类Builder对象。由该类来创建对话框。

        2、通过Builder对象设置对话框的标题、按钮以及按钮将要响应的事件。

        3、调用Builder的create()方法创建对话框(AlertDialog)。

        4、调用AlertDialog的show()方法显示对话框。

package com.jwt.chp04;

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

public class AlertDialogActivity extends Activity {

	private Button btnAlert;
	private Button btnList;
	private Button btnSingle;
	private Button btnMulti;
	private TextView lblTitle;

	final String[] items = { "奥尔良鸡腿堡", "麻辣鸡腿堡", "深海鳕鱼堡", "咖啡" };

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

		btnAlert = (Button) findViewById(R.id.btnADDel);
		btnList = (Button) findViewById(R.id.btnADSel);
		btnSingle = (Button) findViewById(R.id.btnADSingleSel);
		btnMulti = (Button) findViewById(R.id.btnADMultiSel);

		lblTitle = (TextView) findViewById(R.id.lblADTitle);

		btnAlert.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				ShowAlertDialog();
			}
		});

		btnList.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				ShowListDialog();
			}
		});

		btnSingle.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				ShowSingleSelectDialog();
			}
		});

		btnMulti.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				ShowMultiSelectDialog();
			}
		});

	}

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

	private void ShowAlertDialog() {
		AlertDialog.Builder b = new AlertDialog.Builder(this);
		b.setTitle("告警对话框")
				.setMessage("您确定要删除这个吗?")
				.setPositiveButton("Sure",
						new DialogInterface.OnClickListener() {

							@Override
							public void onClick(DialogInterface dialog,
									int which) {
								// TODO Auto-generated method stub
								lblTitle.setText("Delete Successed!");
							}
						})
				.setNegativeButton("Cancel",
						new DialogInterface.OnClickListener() {

							@Override
							public void onClick(DialogInterface dialog,
									int which) {
								// TODO Auto-generated method stub
								lblTitle.setText("Delete Cancel");
							}
						});
		AlertDialog dialog = b.create();
		dialog.show();
	}

	private void ShowListDialog() {
		AlertDialog.Builder b = new AlertDialog.Builder(this);
		b.setTitle("列表对话框").setItems(items,
				new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						// TODO Auto-generated method stub
						lblTitle.setText("您的选择是:" + items[which]);
					}
				});
		AlertDialog dialog = b.create();
		dialog.show();
	}

	private void ShowSingleSelectDialog() {
		AlertDialog.Builder b = new AlertDialog.Builder(this);
		b.setTitle("单选对话框");
		b.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				lblTitle.setText("您的选择是:" + items[which]);
			}
		});
		b.setPositiveButton("确定", new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
			}
		});
		AlertDialog dialog = b.create();
		dialog.show();
	}

	private void ShowMultiSelectDialog() {
		final boolean[] defSel = new boolean[] { false, true, false, true };

		AlertDialog.Builder b = new AlertDialog.Builder(this);
		b.setTitle("多选对话框");
		b.setMultiChoiceItems(items, defSel,
				new DialogInterface.OnMultiChoiceClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which,
							boolean isChecked) {
						// TODO Auto-generated method stub
						defSel[which] = isChecked;
						String result = "您选择了:";
						for (int i = 0; i < defSel.length; i++) {
							if (defSel[i])
								result += items[i] + "、";
						}
						lblTitle.setText(result);
					}
				});
		b.setPositiveButton("确定", new DialogInterface.OnClickListener() {

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

			}
		});

		AlertDialog dialog = b.create();
		dialog.show();
	}
}


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值