AlertDialog 对话框 5种


MainActivity.class
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private Button bt1;
    private Button bt2;
    private Button bt3;
    private Button bt4;
    private Button bt5;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt1 = (Button) findViewById(R.id.bt1);
        bt1.setOnClickListener(this);

        bt2 = (Button) findViewById(R.id.bt2);
        bt2.setOnClickListener(this);

        bt3 = (Button) findViewById(R.id.bt3);
        bt3.setOnClickListener(this);

        bt4 = (Button) findViewById(R.id.bt4);
        bt4.setOnClickListener(this);

        bt5 = (Button) findViewById(R.id.bt5);
        bt5.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            //确认对话框
            case R.id.bt1:{
                Log.d("xys", "进入了");
                //创建Builder构建器
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle("确认对话框!");//设置标题
                builder.setIcon(R.mipmap.ic_launcher);//设置图标
                builder.setMessage("确认对话框内容。");//设置文本内容
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "这里是取消按钮!", Toast.LENGTH_SHORT).show();
                    }
                });
                builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "这里是确定 按钮!", Toast.LENGTH_SHORT).show();
                    }
                });
                //创建出dialog并show出来
//                AlertDialog dialog = builder.create();
//                dialog.show();
                builder.create().show();
                break;
            }
            //单选按钮对话框
            case R.id.bt2:{
                final String[] list = {"男","女","女博士","程序员"};
                AlertDialog.Builder builder =  new AlertDialog.Builder(this);

                builder.setTitle("选择性别");//设置标题
                builder.setIcon(R.mipmap.ic_launcher);//设置图标
                                            //数据源,默认选中的项目
                builder.setSingleChoiceItems(list, 0, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "你选择的是" + list[which] + "这一项", Toast.LENGTH_SHORT).show();
                    }
                });
                builder.create().show();
                break;
            }

            //多选按钮对话框
            case R.id.bt3:{
                final String[] list = {"口琴","吉他","电脑","跳水"};
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle("爱好");
                builder.setIcon(R.mipmap.ic_launcher);
                builder.setMultiChoiceItems(list, null, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                        if (isChecked) {
                            Toast.makeText(MainActivity.this, "我的爱好是" + list[which], Toast.LENGTH_SHORT).show();
                        } else {
                            Toast.makeText(MainActivity.this, "关我屁事", Toast.LENGTH_SHORT).show();
                        }

                    }
                });
                builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
                builder.create().show();
                break;
            }

            //列表对话框
            case R.id.bt4:{
                final String [] list ={"宣传","策划","打酱油","捣糨糊"};
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle("爱好");
                builder.setIcon(R.mipmap.ic_launcher);
                builder.setItems(list, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(MainActivity.this, "你选择的部门是" + list[which], Toast.LENGTH_SHORT).show();
                    }
                });
                builder.create().show();
                break;
            }

            //自定义对话框
            case R.id.bt5:{
                final String [] list ={"宣传","策划","打酱油","捣糨糊"};
                //获取自定义布局
                LayoutInflater inflater = LayoutInflater.from(this);
                View view = inflater.inflate(R.layout.dialog_layout, null);

                final AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setView(view);
                builder.setTitle("自定义对话框");

                //监听自定义按钮
                final EditText text = (EditText) view.findViewById(R.id.layout_text);

                Button bt = (Button) view.findViewById(R.id.layout_bt1);
                bt.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        final String str = text.getText().toString();
                        Toast.makeText(MainActivity.this, "提交的内容是 " + str, Toast.LENGTH_SHORT).show();

                    }
                });
                final AlertDialog dialog = builder.create();
                dialog.show();
//                builder.create().show();
                break;
            }
        }
    }
}

  

activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <Button
        android:id="@+id/bt1"
        android:text="确认对话框"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/bt2"
        android:layout_below="@id/bt1"
        android:text="单选对话框"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/bt3"
        android:layout_below="@id/bt2"
        android:text="多选对话框"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/bt4"
        android:layout_below="@id/bt3"
        android:text="列表对话框"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/bt5"
        android:layout_below="@id/bt4"
        android:text="自定义对话框"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</RelativeLayout>

  

dialog_layout.xml(自定义布局)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <EditText
        android:id="@+id/layout_text"
        android:hint="请输入内容"
        android:layout_weight="5"
        android:layout_width="0dp"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/layout_bt1"
        android:layout_weight="1.5"
        android:text="提交"
        android:layout_width="0dp"
        android:layout_height="wrap_content" />

</LinearLayout>
<ImageView
    android:id="@+id/layout_image"
    android:src="@drawable/abc"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
</LinearLayout>

  

时间: 2024-12-08 20:38:12

AlertDialog 对话框 5种的相关文章

Android基础入门教程——2.5.3 AlertDialog(对话框)详解

Android基础入门教程--2.5.3 AlertDialog(对话框)详解 标签(空格分隔): Android基础入门教程 本节引言: 本节继续给大家带来是显示提示信息的第三个控件AlertDialog(对话框),同时它也是其他 Dialog的的父类!比如ProgressDialog,TimePickerDialog等,而AlertDialog的父类是:Dialog! 另外,不像前面学习的Toast和Notification,AlertDialog并不能直接new出来,如果你打开 Alert

artdialog对话框 三种样式 网址:http://www.planeart.cn/demo/artDialog/_doc/labs.html

摇头效果 类似与wordpress登录失败后登录框可爱的左右晃动效果 // 2011-07-17 更新 artDialog.fn.shake = function (){ var style = this.DOM.wrap[0].style, p = [4, 8, 4, 0, -4, -8, -4, 0], fx = function () { style.marginLeft = p.shift() + 'px'; if (p.length <= 0) { style.marginLeft =

关于Android4.X的Alertdialog对话框

最近在做Android4.0的开发,发现AlertDialog相比较以前有了较大变化,就是在触摸对话框边缘外部,对话框消失 于是研究其父类发现,可以设置这么一条属性,当然必须先AlertDialog.Builder.create()之后才能调用这两个方法 方法一: setCanceledOnTouchOutside(false);调用这个方法时,按对话框以外的地方不起作用.按返回键还起作用 方法二: setCanceleable(false);调用这个方法时,按对话框以外的地方不起作用.按返回键

Android中 Alertdialog对话框点击消失?

在开发的时候遇到一个问题,就是一触摸对话框边缘外部,对话框会自动消失.这个问题很纠结啊,查找了一下发现从Android 4.0开始,AlertDialog有了变化,就是在触摸对话框边缘外部,对话框会自动消失,查了源码,找到解决办法: 研究其父类时候发现,可以设置这么一条属性,在AlertDialog.Builder.create()之后才能调用这两个方法 方法一: setCanceledOnTouchOutside(false);调用这个方法时,按对话框以外的地方不起作用.按返回键还起作用 方法

Android中使用AlertDialog实现几种不同的对话框

场景 app中常见的对话框. 简单的带确定取消按钮的对话框 带列表的对话框 带单项选择的对话框 带多项选择的对话框 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改为LinearLayout,并通过android:orientation="vertical">设置为垂直布局.并添加四个按钮 <?xml version="1.0&quo

Android AlertDialog对话框自定义风格的另类实现

一.引子 学过Android的同学都知道,对话框的重要程度非常高,任何一款 app几乎都离不开对话框,值得庆幸的是,对话框的运用在Android中还是相对比较容易的.虽然很简单,但我在项目中还是碰到些问题,比如,如何实现自定义的对话框NegativeButton的点击效果.如何改变标题的字体大小和颜色等. 二.分析和实现 下面来看一下下面那张效果图,微信长按通讯录时弹出的对话框. 我相信,只要是有了一定Android基础的同学都能实现此功能,就算一时忘记了,稍微google下也是能做出来的:根据

Android:AlertDialog对话框

1.简单的ALertDialog: Dialog alertDialog = new AlertDialog.Builder(this) .setTitle("标题") .setMessage("内容") .setIcon(R.drawable.ic_launcher).create(); alertDialog.show(); 2.带按钮的ALertDialog public class MainActivity extends Activity { okList

android入门 — AlertDialog对话框

常见的对话框主要分为消息提示对话框.确认对话框.列表对话框.单选对话框.多选对话框和自定义对话框. 对话框可以阻碍当前的UI线程,常用于退出确认等方面. 在这里主要的步骤可以总结为: 1.创建AlertDialog.Builder对象: 2.调用setTitle()或setCustomTitle()方法设置标题: 3.调用setIcon()设置图标: 4.调用setPositiveButton().setNegativeButton()或setNeturalButton()添加按钮: 5.调用A

Android4.0的Alertdialog对话框,设置点击其他位置不消失

Android4.0以上AlertDialog,包括其他自定义的dialog,在触摸对话框边缘外部,对话框消失. 可以设置这么一条属性,当然必须先AlertDialog.Builder.create()之后才能调用这两个方法 方法一: setCanceledOnTouchOutside(false);调用这个方法时,按对话框以外的地方不起作用.按返回键还起作用 方法二: setCancelable(false);调用这个方法时,按对话框以外的地方不起作用.按返回键也不起作用