Android中几种dialog的实现

来源:互联网 发布:sai软件免费下载 编辑:程序博客网 时间:2024/06/06 23:52

今天刚刚学习了android几种常见的dialog的实现,写写自己对这几个dialog的心得吧

第一个确定取消对换框:下面我就直接用代码来体现

/*** 这个是确定取消提示框* @param view*/public void sureremove(View view){/** 创建步骤* 1,创建工厂对象* 2,通过工厂对象去明确我们的需求* 3,创建*/// 1,创建工厂对象AlertDialog.Builder builder = new Builder(this);//2,通过工厂对象去明确我们的需求//把订单需求给创建的工厂//通过工厂创建各个组件,并把原材料添加到各个机器中builder.setTitle("创建标题");builder.setMessage("这是要显示的提示内容");//确定按钮builder.setPositiveButton("确定", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();Toast.makeText(MainActivity.this, "你点击了确定按钮", 0).show();}});//取消按钮builder.setNegativeButton("取消", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "你点击了取消按钮", 0).show();}});//3,创建//工厂有了,需求明确了,原料也已经添加了,那么下面就要来开工把它给造出来//这步特别的重要builder.create().show();}
第二个是单选按钮
/** * 单选按钮 *  * @param view */public void radio(View view) {// 1,创建工厂对象// 用工厂模式创建AlertDialog.Builder builder = new Builder(MainActivity.this);// 2,通过工厂对象去明确我们的需求// 告诉工厂生产怎么样的产品builder.setTitle("单选按钮");final String[] items = { "男", "女", "未知" };/* * items:单选按钮的选项,是一个字符串数据 checkedItem: 默认选项 参数3,监听事件 */builder.setSingleChoiceItems(items, 3, new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// 移除dialogdialog.dismiss();Toast.makeText(MainActivity.this, items[which], 0).show();}});// 3,创建// 一定要创建和show()// builder.create().show();// 效果等同于上面那句代码builder.show();}
第三个是多选按钮:

/** * 多选按钮 *  * @param view */public void checkbox(View view) {// 1,创建工厂对象// 创建工厂AlertDialog.Builder builder = new Builder(MainActivity.this);// 2,通过工厂对象去明确我们的需求// 告诉工厂要生产什么样的东西builder.setTitle("请选择城市");// 待选择的元素final String[] items = { "北京", "上海", "深圳", "广州" };// 待选择元素的选择状态final boolean[] checkedItems = { false, false, false, false };/* * items 待选择的元素 checkedItems 待选择元素的选择状态 监听事件 */builder.setMultiChoiceItems(items, checkedItems,new OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which,boolean isChecked) {checkedItems[which] = isChecked;}});// 再设置一个提交按钮builder.setPositiveButton("提交", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {StringBuffer sb = new StringBuffer();for (int x = 0; x < checkedItems.length; x++) {// 当checkedItems数组里面的元素为true的时候说明这个框已经选中了if (checkedItems[x]) {sb.append(items[x] + ",");}}Toast.makeText(MainActivity.this, "你选择了:" + sb.toString(), 0).show();}});// 3,创建// 设计完成一定要生产出来builder.show();}
通过上面这三个dialog我们发现,他们都是通过工厂模式来创建的,只要明确上面那三个步骤,就很方便了,很容易的记:

创建步骤 

1,创建工厂对象 

2,通过工厂对象去明确我们的需求 

3,创建


四,普通进度条的创建:

/** * 普通进度条,没有加任何的样式 *  * @param view */public void rate(View view) {// 进度条就不使用工厂模式来了,当也很简单final ProgressDialog pd = new ProgressDialog(MainActivity.this);pd.setTitle("进度条");pd.setMessage("正在加载....请稍后");pd.show();// 关闭进度条,并且关闭一定要在别的线程中关闭,不能在当前线程中关闭new Thread() {public void run() {try {sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}pd.dismiss();}}.start();}
五带显示进度的进度条


/** * 带显示进度的进度条 *  * @param view */public void rate2(View view) {final ProgressDialog pd = new ProgressDialog(MainActivity.this);pd.setTitle("显示进度条");// 设置进度条样式pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);pd.setMessage("正在处理中。。。请稍后");pd.show();// 移除一定要放在别的线程中去 操作new Thread() {public void run() {pd.setMax(100);try {for (int i = 0; i < 100; i++) {pd.setProgress(i);sleep(100);}} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}// 移除pd.dismiss();}}.start();}


是不是发现我们下面移除进度条的时候都是在新开的线程中去操作的呀,这个也是这个进度条对象框的一个特点,我们要移除它,必须要在别的线程中去处理,不能在当前线程中去操作.谨记
0 0
原创粉丝点击