Android UI学习之Dialog

2022-05-08 15:56:51 浏览数 (1)

本节学习Diaolog。在生活中Dialog包括:三种样式(单选对话框,多选对话框,确定取消对话框)

那我们一个一个分析:

确定取消对话框:

代码语言:javascript复制
 public void click1(View v)
    {
    	AlertDialog.Builder builder = new Builder(MainActivity.this);
    	
    	//设置图标
    	builder.setIcon(android.R.drawable.alert_light_frame);
    	//设置标题
    	builder.setTitle("提示");
    	//设置正文
    	builder.setMessage("是否退出游戏?");
    	//设置确定按钮
    	builder.setPositiveButton("确定", new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				//确定后回调函数
				Toast.makeText(MainActivity.this, "退出", Toast.LENGTH_SHORT).show();
			}
		});
    	//设置取消按钮
    	builder.setNegativeButton("取消", new OnClickListener(){
			
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				//取消后回调函数
				Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();
			}
		});
    	
    	//显示Dialog
    	AlertDialog dialog = builder.create();
    	dialog.show();
    }

显示效果:

单选对话框:

代码语言:javascript复制
 public void click2(View v)
    {
    	AlertDialog.Builder builder = new Builder(MainActivity.this);
    	builder.setTitle("请选择性别");
    	
    	final String[] items = new String[]{
    		"男",
    		"女"
    	};
    	
    	//-1代表的意思是: 默认那个都不选中,0代表男,1代表女
    	builder.setSingleChoiceItems(items, 1, new OnClickListener() {
			
    		//which: 代表是选中那个选项
			@Override
			public void onClick(DialogInterface dialog, int which) {
				Toast.makeText(MainActivity.this, items[which]  "被选中了!" , Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		});
    	
    	builder.show();
    }

显示结果为:

多选对话框:

代码语言:javascript复制
public void click3(View v)
    {
    	AlertDialog.Builder builder = new Builder(MainActivity.this);
    	builder.setTitle("请选择您喜欢的类型");
    	final String[] items = new String[]{
    			"温柔型",
    			"性感型",
    			"火辣型",
    			"奶妈型",
    			"萝莉型",
    	};
    	
    	//初始值:true代表选中,false代表不选中
    	final boolean[] checkedItems = new boolean[]{
    		true,
    		true,
    		false,
    		true,
    		true,
    	};
    	
    	builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener()
    	{
			//which:用户点击的条目的下标
			//isChecked:用户是选中该条目还是取消该条目
			@Override
			public void onClick(DialogInterface arg0, int which, boolean isChecked) {
				checkedItems[which] = isChecked;
			}
    	});
    	
    	builder.setPositiveButton("确定", new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				
				//封装显示
				String text = "";
				for(int i = 0; i < items.length; i  )
				{
					text  = checkedItems[i] ? items[i]   ";" : "";
				}
				Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();
				dialog.dismiss();
			}
		});
    	
    	builder.show();
    }

显示效果:

关于Dialog就说到这里

0 人点赞