Android Dialog的九种常用形式 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    Dialog是常用的一种Android控件,一般常用的形式有九种,

Android Dialog的九种常用形式

    第一种,最常见的普通dialog

private void nomalDialog() {		//创建对话框对象:AlertDialog的内部类Builder的对象		AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);		//给对话框设置图标		builder.setIcon(R.drawable.ic_launcher);		//设置Title		builder.setTitle(Title);		//设置对话框的信息内容		builder.setMessage(是否删除选中的数据);		//设置选择按钮		builder.setPositiveButton(删除, new OnClickListener() {						@Override			public void onClick(DialogInterface dialog, int which) {				//进行删除操作				Toast.makeText(MainActivity.this, 点击了删除按钮, Toast.LENGTH_SHORT).show();			}		});		builder.setNegativeButton(取消, new OnClickListener() {						@Override			public void onClick(DialogInterface dialog, int which) {				Toast.makeText(MainActivity.this, 点击了取消----按钮, Toast.LENGTH_SHORT).show();			}		});		//显示对话框		builder.show();	}

    第二种 列表对话框

private void listDialog() {		AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);		builder.setTitle(请做出选择);		builder.setItems(R.array.strs, new OnClickListener() {						@Override			public void onClick(DialogInterface dialog, int which) {				Toast.makeText(MainActivity.this, getResources().getStringArray(R.array.strs)[which], Toast.LENGTH_SHORT).show();			}		});		builder.show();	}

    第三种 单选列表对话框,淘宝取消订单原因就是用的此控件

private void singleDialog() {		AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);		//strs为在valuse目录下新建一个arrays.mxl文件		final String[] strs=getResources().getStringArray(R.array.strs);		//给Dialog设置单选选项。参数:1数据源   2默认选中项   3监听		builder.setSingleChoiceItems(strs, 1, new OnClickListener() {						@Override			public void onClick(DialogInterface dialog, int which) {				System.out.println(===witch==+which);//				Dialog对象  whitch选中项				Toast.makeText(MainActivity.this, getResources().getStringArray(R.array.strs)[which], Toast.LENGTH_SHORT).show();							}		});		//选择结束后不会自动消失对话框,so加上按钮		builder.setPositiveButton(确定, new OnClickListener() {						@Override			public void onClick(DialogInterface dialog, int which) {				System.out.println(===witch=btnclick=+which);			}		});		dialogs = builder.show();	}

    第四种 多选列表对话框

private void mutiDialog() {		AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);		final boolean[] checkedState=new boolean[3]; 		builder.setMultiChoiceItems(R.array.strs, checkedState, new OnMultiChoiceClickListener() {						@Override			public void onClick(DialogInterface dialog, int which, boolean isChecked) {							}		}); 		builder.setPositiveButton(确定, new OnClickListener() {						@Override			public void onClick(DialogInterface dialog, int which) {				String str=;				for(int i=0;i<3;i++){					if(checkedState[i])						str+=true;					else						str+=false;				}				Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();			}		}); 		builder.show();	}

    第五种 自定义布局对话框

private void mdefineDialog() {		AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);		//内容布局转换成View		View view=View.inflate(MainActivity.this, R.layout.view_dialog, null);		//获取Dialog内容View中的控件		final EditText etxtv1=(EditText) view.findViewById(R.id.etxtv1);		final EditText etxtv2=(EditText) view.findViewById(R.id.etxtv2);		builder.setView(view);//把View添加进Dialog		//给Dialog添加按钮		builder.setPositiveButton(登陆, new OnClickListener() {						@Override			public void onClick(DialogInterface dialog, int which) {				Toast.makeText(MainActivity.this,etxtv1.getText().toString()+etxtv2.getText().toString(), Toast.LENGTH_SHORT).show();			}		});		builder.show();	}

    第六种 进度对话框

private void progressDialog() {		ProgressDialog proDia=new ProgressDialog(MainActivity.this);		proDia.setMessage(正在加载...);		proDia.show();		//消失对话框//		proDia.dismiss();	}

    第七种 水平进度对话框

private void progressHDialog() {		final ProgressDialog proD=new ProgressDialog(MainActivity.this);		//设置进度条的样式		proD.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);		//设置进度条的最大进度		proD.setMax(100);		new Thread(new Runnable(){			@Override			public void run() {				for(int i=0;i<=100;i++){					try {						Thread.sleep(200);						proD.setProgress(i);						if(i==100){							proD.dismiss();						}					} catch (InterruptedException e) {						e.printStackTrace();					}				}			}}).start();		proD.show();	}

    第八种 日期对话框

private void DateDialog() {		//日期选择 		OnDateSetListener DL=new OnDateSetListener() {						@Override			public void onDateSet(DatePicker view, int year, int monthOfYear,					int dayOfMonth) {				//参数选择结果:年 月 日				Toast.makeText(MainActivity.this,year +:+monthOfYear+:+dayOfMonth, Toast.LENGTH_SHORT).show();			}		};		//日期选择对话框:参数1上下文   参数2:     参数...默认显示日期 实际显示的月份比这里设置的月份数会多1个月		DatePickerDialog DD=new DatePickerDialog(MainActivity.this, DL, 2015, 4, 12);		//显示		DD.show();	}

    第九种 时间对话框

private void TimeDialog() {		OnTimeSetListener timeL=new OnTimeSetListener() {						@Override			public void onTimeSet(TimePicker view, int hourOfDay, int minute) {				//参数:参数2选择的小时     参数3:分钟				Toast.makeText(MainActivity.this,hourOfDay +:+minute, Toast.LENGTH_SHORT).show();			}		};		//参数:参数1:上下文对象   参数2:OnTimeSetListener    参数3:对话框弹出以后默认显示时间           参数5:是否是24小时		TimePickerDialog time=new TimePickerDialog(MainActivity.this, timeL, 0, 0, false);		time.show();			}

最新文章