宏亮的专栏

转载请注明出处:红亮的专栏:

Android中的对话框形式大致可分为五种:分别是一般对话框形式,列表对话框形式,单选按钮对话框,多选按钮对话框,自定义对话框。

在实际开发中,用系统的对话框会很少,因为太丑了,美工不愿意,多是使用自定义对话框。当然学会系统的,自定义就简单了,所以我们先来学习系统的,后面在写一篇自定义对话框。

一般对话框:

不多说先上图:

代码:

private void dialog1(){AlertDialog.Builder builder=new AlertDialog.Builder(this); //先得到构造器builder.setTitle("提示"); //设置标题builder.setMessage("是否确认退出?"); //设置内容builder.setIcon(R.mipmap.ic_launcher);//设置图标,图片id即可builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { //设置确定按钮@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss(); //关闭dialogToast.makeText(MainActivity.this, "确认" + which, Toast.LENGTH_SHORT).show();}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { //设置取消按钮@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();Toast.makeText(MainActivity.this, "取消" + which, Toast.LENGTH_SHORT).show();}});builder.setNeutralButton("忽略", new DialogInterface.OnClickListener() {//设置忽略按钮@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();Toast.makeText(MainActivity.this, "忽略" + which, Toast.LENGTH_SHORT).show();}});//参数都设置完成了,创建并显示出来builder.create().show();}说明:代码上注释已经比较全了,相信大家都能看得懂!dialog可以设置三个选择按钮,设置时指定按钮响应事件。

中的which代表的是-2. 到了这里相信大家已经想到怎么简洁的写法了,只要写一个响应事件,用which参数去区分是那个按钮就可以了!

看简洁的代码2:和上面的效果是一样的!

private void dialog1_1(){//先new出一个监听器,设置好监听DialogInterface.OnClickListener dialogOnclicListener=new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {switch(which){case Dialog.BUTTON_POSITIVE:Toast.makeText(MainActivity.this, "确认" + which, Toast.LENGTH_SHORT).show();break;case Dialog.BUTTON_NEGATIVE:Toast.makeText(MainActivity.this, "取消" + which, Toast.LENGTH_SHORT).show();break;case Dialog.BUTTON_NEUTRAL:Toast.makeText(MainActivity.this, "忽略" + which, Toast.LENGTH_SHORT).show();break;}}};//dialog参数设置AlertDialog.Builder builder=new AlertDialog.Builder(this); //先得到构造器builder.setTitle("提示"); //设置标题builder.setMessage("是否确认退出?"); //设置内容builder.setIcon(R.mipmap.ic_launcher);//设置图标,图片id即可builder.setPositiveButton("确认",dialogOnclicListener);builder.setNegativeButton("取消", dialogOnclicListener);builder.setNeutralButton("忽略", dialogOnclicListener);builder.create().show();}

列表对话框:

代码:

private void dialog2() {final String items[]={"张三","李四","王五"};//dialog参数设置AlertDialog.Builder builder=new AlertDialog.Builder(this); //先得到构造器builder.setTitle("提示"); //设置标题//builder.setMessage("是否确认退出?"); //设置内容builder.setIcon(R.mipmap.ic_launcher);//设置图标,,图片id即可//设置列表显示,注意设置了列表显示就不要设置builder.setMessage()了,否则列表不起作用。builder.setItems(items,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show();}});builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show();}});builder.create().show();}说明:列表对话框只需设置Items属性即可,注意不能在设置Message属性,否则只会显示Message,不会显示列表。这里的setItems中的Onclick中的which属性是items数组的下标!单选按钮对话框:愈想得到,就愈要放手。放手是很难的,但是别无选择。

宏亮的专栏

相关文章:

你感兴趣的文章:

标签云: