您的位置:首页 > 其它

02对话框合集

2015-10-05 22:37 309 查看
对话框合集
一、确定对话框AlertDialog()
1、AlertDialog的创建,Builder创建,类似工厂模式
2、Builder.show()底层
public AlertDialog show() {AlertDialog dialog = create();dialog.show();return dialog;}
3、核心代码:
public void click1(View view) {Builder builder = new Builder(this);//类似工厂,用来创建AlertDialong的builder.setTitle("您确定关机么?");builder.setMessage("关机后果很严重");// 1.确定按钮builder.setPositiveButton("确定",new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(getApplicationContext(), "5秒钟后关机", 0).show();}});// 2、取消按钮builder.setNegativeButton("取消", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});// 3、使用builder创建create()对话框并show()对话框// AlertDialog alertDialog = builder.create();// alertDialog.show();builder.show();// 上面两句的简写}
4、结果



二、单选对话框
1、AlertDialog.Builder builder = new Builder(this),这里的this,不能用getApplicationContext()
核心代码:
public void click2(View view) {AlertDialog.Builder builder = new Builder(this);// 这里不能用getApplicationContext(),只能用thisbuilder.setTitle("请选择性别");// builder.setMessage("不选择性别的默认为人妖。。。");//这句不能加上,否则显示不出来单选对话框final String[] items = new String[] { "男", "女", "人妖" };// 1、单选按钮builder.setSingleChoiceItems(items, 2, new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(getApplicationContext(), "您选择了:" + items[which],Toast.LENGTH_SHORT).show();}});// 2、确定按钮builder.setPositiveButton("确定", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();// 关闭对话框}});// 2、取消按钮builder.setNegativeButton("取消", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();// 关闭对话框}});builder.show();}2、结果:



三、多选对话框
核心代码:
public void click3(View view) {AlertDialog.Builder builder = new Builder(this);// 这里不能用getApplicationContext(),只能用thisbuilder.setTitle("您喜欢吃什么?");// builder.setMessage("不选择就默认吃粑粑,hiahia!!!");//这句不能加上,否则显示不出来多选对话框// 1、多选对话框final CharSequence[] items = { "小米", "大米", "玉米", "屎粑粑" };boolean[] checkedItems = { false, false, false, false, true };builder.setMultiChoiceItems(items, checkedItems,new OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which,boolean isChecked) {if (isChecked) {Toast.makeText(getApplicationContext(), "您选择了:" + items[which],Toast.LENGTH_SHORT).show();}}});// 2、确定按钮builder.setPositiveButton("确定", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();// 关闭对话框}});// 3、取消按钮builder.setNegativeButton("取消", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();// 关闭对话框}});builder.show();}
结果:



四、进度对话框
1、ProgressDialog和ProgressBar是两个特殊的控件,可以在子线程中更新UI
/***TODO 4、没有数据的进度对话框* @param view*/public void click4(View view){ProgressDialog pd = new ProgressDialog(this);// 不能用getApplicationContext()pd.setTitle("提醒");pd.setMessage("正在获取数据");pd.show();}/***TODO 5、有数据的进度对话框* @param view*/public void click5(View view) {final ProgressDialog pd = new ProgressDialog(this);// 不能用getApplicationContext()pd.setTitle("提醒");pd.setMessage("正在获取数据");// pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);//默认的旋转体pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);// 水平方向的pd.setMax(100);pd.show();// 在子线程更新ui,ProgressDialog和ProgressBar是两个特殊的控件,可以在子线程中更新UInew Thread() {@Overridepublic void run() {super.run();for (int i = 0; i < 100; i++) {pd.setProgress(i + 1);try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}}pd.dismiss();}}.start();}
结果:





来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: