在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择,或者给用户提示,这个情况下方便了客户,也便利了自己,不用重复的去创建Activity,可谓“他好,我也好”。这些功能我们们叫它Android Dialog对话框,在我们使用Android的过程中,Android Dialog的类型也分好几种。  

  详细解说利用builder设置对话框的各种属性:

                   AlertDialog.Builder builder = new AlertDialog.Builder(this);  //创建 一个提示对话框的构造者对象
                  builder.setTitle("询问对话框");//设置弹出对话框的标题
                  builder.setIcon(R.drawable.ic_launcher);//设置弹出对话框的图标
                  builder.setMessage("你吃早饭了吗?");//设置弹出对话框的内容
                  builder.setCancelable(false);//能否被取消

                  builder.setNeutralButton("不要理你", new DialogInterface.OnClickListener());   //中立的按钮
                  builder.setPositiveButton("吃过了", new DialogInterface.OnClickListener())  //正面的按钮(肯定)
                  builder.setNegativeButton("没吃呢", new DialogInterface.OnClickListener() ); //反面的按钮(否定)        

今天给大家介绍几种常见的Dialog

首先我们创建一个项目:如下所示MainActivity类和布局文件

MainActivity类:

package com.example.android_007_dialog;import java.lang.reflect.Array;import java.util.ArrayList;import android.support.v7.app.ActionBarActivity;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}}

布局文件:

    

 

1、提示Dialog

public void alertClick(View v) {        //创建 一个提示对话框的构造者对象        AlertDialog.Builder builder = new AlertDialog.Builder(this);        builder.setTitle("询问对话框");//设置弹出对话框的标题        builder.setIcon(R.drawable.ic_launcher);//设置弹出对话框的图标        builder.setMessage("你吃早饭了吗?");//设置弹出对话框的内容        builder.setCancelable(false);//能否被取消        //正面的按钮(肯定)        builder.setPositiveButton("吃过了", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                Toast.makeText(MainActivity.this, "那你还要不要再吃点吧", Toast.LENGTH_SHORT).show();                dialog.cancel();            }        });        //反面的按钮(否定)        builder.setNegativeButton("没吃呢", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                Toast.makeText(MainActivity.this, "那你就吃一点吧", Toast.LENGTH_SHORT).show();                dialog.cancel();            }        });        //中立的按钮        builder.setNeutralButton("不要理你", new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                Toast.makeText(MainActivity.this, "你倒是说一句话啊", Toast.LENGTH_SHORT).show();               // dialog.cancel();            }        });        builder.show();    }

 

这个提示带有一句提示消息,并带有三个按钮,实现效果如下:

 

 

Android中弹出对话框的实现_第1张图片

 

2、多项单选Dialog,顾名思义就是多项里面选择一个,实现代码如下:

public void selectClick(View v){        AlertDialog.Builder builder = new AlertDialog.Builder(this);          final String items[]={"苹果","桃子","梨","西瓜","大白菜"};        builder.setTitle("请选择一类");        builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show();            }        });        builder.show();    }

 

效果图如下:

Android中弹出对话框的实现_第2张图片

 


3、多项多选Dialog,即多项选择,实现代码如下:

public void multiClick(View v) {  AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);      builder.setIcon(R.drawable.ic_launcher);      builder.setTitle("类别");      final String items[]={"苹果","桃子","梨","西瓜","大白菜"};      //    设置一个单项选择下拉框      /**       * 第一个参数指定我们要显示的一组下拉多选框的数据集合       * 第二个参数代表哪几个选项被选择,如果是null,则表示一个都不选择,如果希望指定哪一个多选选项框被选择,       * 需要传递一个boolean[]数组进去,其长度要和第一个参数的长度相同,例如 {true, false, false, true};       * 第三个参数给每一个多选项绑定一个监听器       */      builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener()      {          StringBuffer sb = new StringBuffer(100);          @Override          public void onClick(DialogInterface dialog, int which, boolean isChecked)          {              if(isChecked)              {                  sb.append(items[which] + ", ");              }              Toast.makeText(MainActivity.this, "类别为:" + sb.toString(), Toast.LENGTH_SHORT).show();          }      });      builder.setPositiveButton("确定", new DialogInterface.OnClickListener()      {          @Override          public void onClick(DialogInterface dialog, int which)          {                        }      });      builder.setNegativeButton("取消", new DialogInterface.OnClickListener()      {          @Override          public void onClick(DialogInterface dialog, int which)          {                        }      });    builder.show();   }

 

 

效果如下图:


Android中弹出对话框的实现_第3张图片

 

4、登录Dialog,此处需要自定义一个login_layout布局,并将其填充进去:

其中login_layout的布局文件内容如下所示:

<?xml version="1.0" encoding="utf-8"?>                    

下面是实现文件,也就是在MainActivity类中的内容

public void loginClick(View v){    AlertDialog.Builder builder = new AlertDialog.Builder(this);    builder.setIcon(R.drawable.ic_launcher);    builder.setTitle("登录");    final View view = getLayoutInflater().inflate(R.layout.login_layout,null);    builder.setView(view);    builder.setPositiveButton("登录", new DialogInterface.OnClickListener() {        @Override        public void onClick(DialogInterface dialog, int which) {            EditText et_username = (EditText) view.findViewById(R.id.editText_username);            EditText et_password = (EditText) view.findViewById(R.id.editText_password);            String username = et_username.getText().toString();            String password = et_password.getText().toString();            Toast.makeText(MainActivity.this, username+"-"+password, Toast.LENGTH_SHORT).show();            dialog.cancel();        }    });    builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {        @Override        public void onClick(DialogInterface dialog, int which) {            dialog.cancel();        }    });    builder.show();}

实现效果如下:

 

 

Android中弹出对话框的实现_第4张图片

 


总结:当然dialog样式还有很多种,因为这个布局可以自定义,所以扩展空间无限,大家实际开发过程中根据自己需求来定义自己的dialog给用户方便也给自己方便。

 

以上就是安卓中的弹出对话框


更多相关文章

  1. Android老版本项目导入到新版SDK提示错误
  2. Android自定义对话框Dialog以及主题和样式
  3. Android TextView前加图标垂直居中第一行(仿大众点评购买须知/提
  4. 5、控件系列之TOAST(吐司提示)的曾经、现在与未来
  5. Android的按钮监听事件&自定义回调函数
  6. Android Alert Dialog解决点击按钮对话框不关闭的问题
  7. Android使用selector自定义按钮
  8. Android Nine Patch图片及按钮背景
  9. Android 基本按钮

随机推荐

  1. Android parcelable 解析
  2. Android屏幕常亮防息屏
  3. EditText的focus问题
  4. Android的一些开发资料
  5. android 使用Yasea和ijkplayer集成到自己
  6. ContentProvider总结(Android)
  7. Android的init进程是如何启动的
  8. Android Display 之 HAL Gralloc
  9. Android Vold
  10. Android控件ToggleButton多状态按钮使用