精华内容
下载资源
问答
  • 安卓 对话框

    千次阅读 2020-02-20 18:03:21
    安卓 专高一 day01 对话框对话框普通对话框单选对话框多选对话框自定义对话框进度条对话框日期选择对话框时间选择对话框 对话框 普通对话框 //普通对话框 public void a1(View view) { //1.先创建构造者 ...

    对话框

    普通对话框

    //普通对话框
        public void a1(View view) {
            //1.先创建构造者
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
    
            //2.属性
            builder.setIcon(R.drawable.ic_launcher_background);//图标
            builder.setTitle("这是标题");//标题
            builder.setMessage("这是提示信息");//提示信息
            //设置确定按钮
            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show();
                }
            });
            //设置取消
            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "点击了取消", Toast.LENGTH_SHORT).show();
                }
            });
    
            //3.使用构造者创建对话框
            AlertDialog dialog = builder.create();
            //4.显示
            dialog.show();
        }
    

    单选对话框

    //单选对话框
        public void a2(View view) {
            //1.创建构造者
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
    
            //2.属性
            builder.setIcon(R.drawable.ic_launcher_background);//图标
            builder.setTitle("你的性别是");//标题
            //设置确定
            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show();
                }
            });
            //设置取消
            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();
                }
            });
            //数组选项
            final String[] items = {"男人","女人","人妖"};
            //参数一 列表  参数二 默认选中下标  参数三 事件监听
           builder.setSingleChoiceItems(items, 2, new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialog, int which) {
                   Toast.makeText(MainActivity.this, "选中的是"+items[which], Toast.LENGTH_SHORT).show();
               }
           });
           //3.使用构造者创建对话框
            AlertDialog dialog = builder.create();
            //4.显示
            dialog.show();
        }
    

    多选对话框

    //多选对话框
        public void a3(View view) {
            //1.创建构造者
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            final String[] strings = {"成果","大力","成狗"};//多选选项
            final boolean[] booleans = {true,true,false};//默认是否选中
            //属性
            builder.setIcon(R.drawable.ic_launcher_background);//图标
            builder.setTitle("我的女朋友");//标题
            //设置确定
            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    for (int i = 0; i< booleans.length; i++){
                        if (booleans[i]){
                            Toast.makeText(MainActivity.this, "女朋友是"+strings[i], Toast.LENGTH_SHORT).show();
                        }
                    }
                }
            });
            //设置取消
            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "不要了", Toast.LENGTH_SHORT).show();
                }
            });
            //设置多选列表
            builder.setMultiChoiceItems(strings, booleans, new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                    booleans[which] = isChecked;//设置选中
                }
            });
            //3.使用构造者创建对话框
            AlertDialog dialog = builder.create();
            //4.显示
            dialog.show();
        }
    

    自定义对话框

    先自定义一个布局(zdy.xml)

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
    
        <TextView
            android:textSize="30sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="自定义"
            android:layout_gravity="center"
            />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher_foreground"
            android:layout_gravity="center"
            />
    </LinearLayout>
    

    引用自定义布局的java代码

    //自定义对话框
        public void a4(View view) {
            //1.获得视图
            View view1 = LayoutInflater.from(this).inflate(R.layout.zdy,null);
            //2.创建构造者
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            //3.使用视图
            builder.setView(view1);
            //4.使用构造者创建对话框
            AlertDialog dialog = builder.create();
            //5.显示
            dialog.show();
    

    进度条对话框

    //进度条对话框
        public void a5(View view) {
            //1.实例化对象
            final ProgressDialog dialog = new ProgressDialog(this);
            //设置属性
            dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//水平进度条
           // dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);//转圈圈进度条
            dialog.setMax(100);//最大值
            dialog.setProgress(0);//当前值
            dialog.setMessage("正在下载");
            dialog.show();
            //模拟定时器
            final Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                int n = 0;
                @Override
                public void run() {
                    if (n == 100){
                        dialog.dismiss();//消失
                        timer.cancel();
                    }
                    dialog.setProgress(n+=10);
                }
            },0,1000);
        }
    

    日期选择对话框

     //日期选择对话框
        public void a6(View view) {
            Calendar calendar = Calendar.getInstance();//日历对象
            new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                    Toast.makeText(MainActivity.this, year+"--"+(month+1)+"--"+dayOfMonth, Toast.LENGTH_SHORT).show();
                }
            },calendar.get(Calendar.YEAR),calendar.get(Calendar.MONDAY),calendar.get(Calendar.DAY_OF_MONTH)).show();
    

    时间选择对话框

    //时间选择对话框
        public void a7(View view) {
            Calendar calendar = Calendar.getInstance();//日历对象
            new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                    Toast.makeText(MainActivity.this, hourOfDay+":"+minute, Toast.LENGTH_SHORT).show();
                }
            },calendar.get(Calendar.HOUR),calendar.get(Calendar.MINUTE),true).show();//ture表示24小时制
        }
    
    展开全文
  • 安卓对话框

    2017-02-22 11:20:00
    "我是简单对话框" ); builder.create().show(); break ; case R.id.btn_2: builder = new AlertDialog.Builder( this ); builder.setTitle( "普通对话框" ); builder.setMessage( "我是普通对话框" ); ...

    MainActivity.java

    package com.chuanxidemo.shaoxin.demo03;
    
    import android.app.AlertDialog;
    import android.app.Dialog;
    import android.app.ProgressDialog;
    import android.content.DialogInterface;
    import android.os.Handler;
    import android.os.Message;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.widget.Button;
    import android.widget.RelativeLayout;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MainActivity extends BaseActivity {
    
        private RelativeLayout activityMain;
        private Button btn1;
        private Button btn2;
        private Button btn3;
        private Button btn4;
        private Button btn5;
        private Button btn6;
        private AlertDialog.Builder builder;
        private int numId;
        private List data;
        private int num;
        private ProgressDialog progressDialog;
    
        @Override
        protected void setContentView() {
            setContentView(R.layout.activity_main);
        }
    
        @Override
        protected void setListener() {
            btn1.setOnClickListener(this);
            btn2.setOnClickListener(this);
            btn3.setOnClickListener(this);
            btn4.setOnClickListener(this);
            btn5.setOnClickListener(this);
            btn6.setOnClickListener(this);
        }
    
        @Override
        protected void init() {
            btn1 = (Button) findViewById(R.id.btn_1);
            btn2 = (Button) findViewById(R.id.btn_2);
            btn3 = (Button) findViewById(R.id.btn_3);
            btn4 = (Button) findViewById(R.id.btn_4);
            btn5 = (Button) findViewById(R.id.btn_5);
            btn6 = (Button) findViewById(R.id.btn_6);
        }
    
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.btn_1:
                    builder = new AlertDialog.Builder(this);
                    builder.setTitle("简单对话框");
                    builder.setMessage("我是简单对话框");
                    builder.create().show();
                    break;
                case R.id.btn_2:
                    builder = new AlertDialog.Builder(this);
                    builder.setTitle("普通对话框");
                    builder.setMessage("我是普通对话框");
                    builder.setPositiveButton("确认", null);
                    builder.setNegativeButton("取消", null);
                    builder.setNeutralButton("查看", null);
                    builder.setCancelable(false);
                    builder.create().show();
                    break;
                case R.id.btn_3:
                    builder = new AlertDialog.Builder(this);
                    builder.setTitle("单选对话框");
                    builder.setIcon(R.mipmap.ic_launcher);
                    builder.setSingleChoiceItems(R.array.citysName, 0, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            numId = which;
                        }
                    });
                    builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Log.v("msg", getResources().getStringArray(R.array.citysName)[numId]);
                        }
                    });
                    builder.setCancelable(false);
                    builder.create().show();
                    break;
                case R.id.btn_4:
                    data = new ArrayList();
                    builder = new AlertDialog.Builder(this);
                    builder.setTitle("多选对话框");
                    builder.setIcon(R.mipmap.ic_launcher);
                    data.clear();
                    builder.setMultiChoiceItems(R.array.citysName, new boolean[]{false, false, false},
                            new DialogInterface.OnMultiChoiceClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                                    String[] citys = getResources().getStringArray(R.array.citysName);
    
                                    if (isChecked) {
                                        data.add(citys[which]);
                                    } else {
                                        data.remove(citys[which]);
                                    }
                                }
                            });
                    builder.setNeutralButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Log.v("msg", data.toString());
                        }
                    });
                    builder.create().show();
                    break;
                case R.id.btn_5:
                    final Dialog dialog = new Dialog(this);
                    dialog.setTitle("自定义对话框");
                    LayoutInflater inflater = getLayoutInflater();
                    View view = inflater.inflate(R.layout.diy_dialog, null);
                    dialog.setContentView(view);
                    Button login = (Button) view.findViewById(R.id.login);
                    dialog.show();
                    login.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            dialog.dismiss();
                        }
                    });
                    break;
                case R.id.btn_6:
                    progressDialog = new ProgressDialog(this);
                    progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                    progressDialog.setTitle("进度条对话框");
                    progressDialog.setMax(100);
                    progressDialog.create();
                    progressDialog.show();
                    new MyThread(progressDialog).start();
    
                    break;
            }
        }
    
        Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                progressDialog.setProgress(msg.arg1);
            }
        };
    
        public class MyThread extends Thread {
            ProgressDialog progressDialog;
    
            public MyThread(ProgressDialog progressDialog) {
                this.progressDialog = progressDialog;
            }
    
            @Override
            public void run() {
                while (true) {
                    try {
                        Thread.sleep(100);
                        Message message = new Message();
                        handler.sendEmptyMessage(0);
                        if (num <= progressDialog.getMax()) {
                            num = progressDialog.getProgress();
                            num++;
                            message.arg1 = num;
                            handler.sendMessage(message);
                        }else {
                            progressDialog.dismiss();
                            break;
                        }
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

    BaseActivity.java

    package com.chuanxidemo.shaoxin.demo02;
    
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    
    /**
     * Created by shaoxin on 2017/2/21.
     */
    
    public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener {
    
        
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView();
            init();
            setListener();
        }
    
        protected abstract void setContentView();
    
        protected abstract void setListener();
    
        protected abstract void init();
    
    }

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main"
        android:layout_width="match_parent" android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="com.chuanxidemo.shaoxin.demo02.MainActivity">
    
        <ImageView
            android:id="@+id/img"
            android:layout_centerHorizontal="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/ic_launcher"/>
        <SeekBar
            android:id="@+id/seekbar"
            android:layout_below="@+id/img"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    
        <TextView
            android:id="@+id/text"
            android:layout_below="@+id/seekbar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="00.00"/>
        <Button
            android:id="@+id/btn"
            android:layout_centerHorizontal="true"
            android:layout_below="@id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="播放"/>
    </RelativeLayout>

     

    转载于:https://www.cnblogs.com/ShaoXin/p/6428031.html

    展开全文
  • 文章目录一、对话框概述二、案例演示(一)运行效果(二)涉及知识点(三)实现步骤1、创建安卓应用【DialogDemo】2、将背景图片拷贝到drawable目录3、主布局资源文件activity_main.xml4、自定义对话框布局资源文件...

    一、对话框概述

    在安卓应用开发中,经常会使用对话框与用户进行交互。下面我们演示一些常用的对话框如何使用。

    1. 警告对话框
    2. 列表对话框
    3. 进度对话框
    4. 自定义对话框
    5. 日期拾取对话框
    6. 时间拾取对话框

    二、案例演示

    (一)运行效果

    在这里插入图片描述

    (二)涉及知识点

    1. 线性布局(LinearLayout)
    2. 标签(TextView)
    3. 编辑框(EditText)
    4. 按钮(Button)
    5. 警告对话框(AlertDialog)
    6. 单选按钮(RadioButton)
    7. 复选框(CheckBox)
    8. 进度对话框(ProgressDialog)
    9. 日期拾取对话框(DatePickerDialog)
    10. 时间拾取对话框(TimePickerDialog)
    11. 线程(Thread)
    12. 消息处理器(Handler)

    (三)实现步骤

    1、创建安卓应用【DialogDemo】

    在这里插入图片描述
    在这里插入图片描述

    2、将背景图片拷贝到drawable目录

    在这里插入图片描述

    3、主布局资源文件activity_main.xml

    在这里插入图片描述

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/background"
        android:gravity="center"
        android:orientation="vertical" >
    
        <Button
            android:id="@+id/btnAlertDialog"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:text="弹出警告对话框" />
    
        <Button
            android:id="@+id/btnListDialog1"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:text="弹出列表对话框(普通列表项)" />
    
        <Button
            android:id="@+id/btnListDialog2"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:text="弹出列表对话框(单选按钮列表项)" />
    
        <Button
            android:id="@+id/btnListDialog3"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:text="弹出列表对话框(复选框列表项)" />
    
        <Button
            android:id="@+id/btnProgressDialog"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:text="弹出进度对话框" />
    
        <Button
            android:id="@+id/btnCustomDialog"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:text="弹出自定义对话框" />
    
        <Button
            android:id="@+id/btnDatePickerDialog"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:text="弹出日期拾取对话框" />
    
        <Button
            android:id="@+id/btnTimePickerDialog"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:text="弹出时间拾取对话框" />
    
        <TextView
            android:id="@+id/tvDate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#ff0000"
            android:textSize="20sp" />
    
        <TextView
            android:id="@+id/tvTime"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#ff0000"
            android:textSize="20sp" />
    </LinearLayout>
    

    4、自定义对话框布局资源文件custom_dialog.xml

    在这里插入图片描述

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/background"
        android:gravity="center"
        android:padding="20dp"
        android:orientation="vertical">
    
        <Button
            android:id="@+id/btnAlertDialog"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="弹出警告对话框"
            android:textSize="20sp" />
    
        <Button
            android:id="@+id/btnListDialog1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="弹出列表对话框(普通列表项)"
            android:textSize="20sp" />
    
        <Button
            android:id="@+id/btnListDialog2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="弹出列表对话框(单选按钮列表项)"
            android:textSize="20sp" />
    
        <Button
            android:id="@+id/btnListDialog3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="弹出列表对话框(复选框列表项)"
            android:textSize="20sp" />
    
        <Button
            android:id="@+id/btnProgressDialog"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="弹出进度对话框"
            android:textSize="20sp" />
    
        <Button
            android:id="@+id/btnCustomDialog"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="弹出自定义对话框"
            android:textSize="20sp" />
    
        <Button
            android:id="@+id/btnDatePickerDialog"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="弹出日期拾取对话框"
            android:textSize="20sp" />
    
        <Button
            android:id="@+id/btnTimePickerDialog"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="弹出时间拾取对话框"
            android:textSize="20sp" />
    
        <TextView
            android:id="@+id/tvDate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#ff0000"
            android:textSize="20sp" />
    
        <TextView
            android:id="@+id/tvTime"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#ff0000"
            android:textSize="20sp" />
    </LinearLayout>
    

    5、字符串资源文件strings.xml

    在这里插入图片描述

    <resources>
        <string name="app_name">安卓对话框演示</string>
        <string name="login_title">用户登录</string>
        <string name="main_title">系统主窗口</string>
        <string name="user_login">用户登录</string>
        <string name="username">用户:</string>
        <string name="password">密码:</string>
        <string name="login">登录</string>
        <string name="cancel">取消</string>
    </resources>
    

    6、主界面类 - MainActivity

    在这里插入图片描述

    (1)声明变量

    在这里插入图片描述

    (2)通过资源标识符获取控件实例

    在这里插入图片描述

    (3)给【弹出警告对话框】按钮注册监听器,实现监听器接口,编写事件处理代码

    在这里插入图片描述

    • 启动应用,查看效果
      在这里插入图片描述

    (4)给【弹出列表对话框(普通列表项)】按钮注册监听器,实现监听器接口,编写事件处理代码

    在这里插入图片描述

    • 启动应用,查看效果
      在这里插入图片描述

    (5)给【弹出列表对话框(单选按钮列表项)】按钮注册监听器,实现监听器接口,编写事件处理代码

    在这里插入图片描述

    • 启动应用,查看效果
      在这里插入图片描述

    (6)给【弹出列表对话框(复选框列表项)】按钮注册监听器,实现监听器接口,编写事件处理代码

    在这里插入图片描述

    • 启动应用,查看效果
      在这里插入图片描述

    (7)给【弹出进度对话框】按钮注册监听器,实现监听器接口,编写事件处理代码

    在这里插入图片描述

    • 启动应用,查看效果
      在这里插入图片描述

    (8)给【弹出自定义对话框】按钮注册监听器,实现监听器接口,编写事件处理代码

    在这里插入图片描述

    • 启动应用,查看应用
      在这里插入图片描述

    (9)给【弹出日期拾取对话框】按钮注册监听器,实现监听器接口,编写事件处理代码

    在这里插入图片描述

    • 启动应用,查看效果
      在这里插入图片描述

    (10)给【弹出时间拾取对话框】按钮注册监听器,实现监听器接口,编写事件处理代码

    在这里插入图片描述

    • 启动应用,查看效果
      在这里插入图片描述

    (11)查看主界面类完整源代码

    package net.hw.dialog_demo;
    
    import android.app.AlertDialog;
    import android.app.DatePickerDialog;
    import android.app.Dialog;
    import android.app.ProgressDialog;
    import android.app.TimePickerDialog;
    import android.content.DialogInterface;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.view.View;
    import android.widget.Button;
    import android.widget.DatePicker;
    import android.widget.TextView;
    import android.widget.TimePicker;
    import android.widget.Toast;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    
    public class MainActivity extends AppCompatActivity {
        private Button btnAlertDialog; // 按钮 - 弹出警告对话框
        private Button btnListDialog1;  // 按钮 - 弹出列表对话框1(普通)
        private Button btnListDialog2; // 按钮 - 弹出列表对话框2(单选按钮)
        private Button btnListDialog3; // 按钮 - 弹出列表对话框3(复选框)
        private Button btnProgressDialog; // 按钮 - 弹出进度对话框
        private Button btnCustomDialog; // 按钮 - 弹出自定义对话框
        private Button btnDatePickerDialog; // 按钮 - 弹出日期拾取对话框
        private Button btnTimePickerDialog; // 按钮 - 弹出时间拾取对话框
        private StringBuffer buffer; // 字符串缓冲区
        private boolean[] checkedItems; // 选中项
        private TextView tvDate; // 显示日期的标签
        private TextView tvTime; // 显示时间的标签
        private SimpleDateFormat sdf; // 简单日期格式
        private Calendar calendar; // 日历
        private int progress; // 进度条的当前值
        private ProgressDialog progressDialog; // 进度对话框
        private boolean isRunning; // 线程控制循环变量
        private Thread thread; // 线程
        private Handler handler; // 消息处理器
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // 利用布局资源文件设置用户界面
            setContentView(R.layout.activity_main);
    
            // 通过资源标识符获取控件实例
            btnAlertDialog = findViewById(R.id.btnAlertDialog);
            btnListDialog1 = findViewById(R.id.btnListDialog1);
            btnListDialog2 = findViewById(R.id.btnListDialog2);
            btnListDialog3 = findViewById(R.id.btnListDialog3);
            btnProgressDialog = findViewById(R.id.btnProgressDialog);
            btnCustomDialog = findViewById(R.id.btnCustomDialog);
            btnDatePickerDialog = findViewById(R.id.btnDatePickerDialog);
            btnTimePickerDialog = findViewById(R.id.btnTimePickerDialog);
    
            // 给【弹出警告对话框】按钮注册监听器,实现监听器接口,编写事件处理代码
            btnAlertDialog.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    AlertDialog.Builder builder = new AlertDialog.Builder(
                            MainActivity.this);
                    builder.setTitle("提示")
                            .setIcon(getResources().getDrawable(
                                    R.mipmap.ic_launcher))
                            .setMessage("你是否想要退出?")
                            .setCancelable(false)
                            .setPositiveButton("是",
                                    new DialogInterface.OnClickListener() {
                                        public void onClick(DialogInterface dialog, int id) {
                                            finish();
                                        }
                                    })
                            .setNegativeButton("否",
                                    new DialogInterface.OnClickListener() {
                                        public void onClick(DialogInterface dialog, int id) {
                                            dialog.cancel();
                                        }
                                    })
                            .create()
                            .show();
                }
            });
    
            // 给【弹出列表对话框(普通列表项)】按钮注册监听器,实现监听器接口,编写事件处理代码
            btnListDialog1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    final String[] items = { "红色:象征着热情", "绿色:象征着希望", "蓝色:象征着忧郁" };
                    AlertDialog.Builder builder = new AlertDialog.Builder(
                            MainActivity.this);
                    builder.setTitle("挑选一种颜色");
                    builder.setIcon(getResources().getDrawable(
                            R.mipmap.ic_launcher));
                    builder.setItems(items, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int item) {
                            Toast.makeText(getApplicationContext(), items[item],
                                    Toast.LENGTH_SHORT).show();
                        }
                    });
                    builder.show();
                }
            });
    
            // 给【弹出列表对话框(单选按钮列表项)】按钮注册监听器,实现监听器接口,编写事件处理代码
            btnListDialog2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    final String[] items = { "红色:象征着热情", "绿色:象征着希望", "蓝色:象征着忧郁" };
                    AlertDialog.Builder builder = new AlertDialog.Builder(
                            MainActivity.this);
                    builder.setTitle("挑选一种颜色");
                    builder.setIcon(getResources().getDrawable(
                            R.mipmap.ic_launcher));
                    builder.setSingleChoiceItems(items, -1,
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int item) {
                                    Toast.makeText(getApplicationContext(),
                                            items[item], Toast.LENGTH_SHORT).show();
                                }
                            });
                    builder.show();
                }
            });
    
            // 给【弹出列表对话框(复选框列表项)】按钮注册监听器,实现监听器接口,编写事件处理代码
            btnListDialog3.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    final String[] items = { "红色", "绿色", "蓝色" };
                    checkedItems = new boolean[items.length];
                    buffer = new StringBuffer();
                    AlertDialog.Builder builder = new AlertDialog.Builder(
                            MainActivity.this);
                    builder.setTitle("挑选几种颜色");
                    builder.setIcon(getResources().getDrawable(
                            R.mipmap.ic_launcher));
                    builder.setMultiChoiceItems(items, checkedItems,
                            new DialogInterface.OnMultiChoiceClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog,
                                                    int which, boolean isChecked) {
                                    for (int i = 0; i < checkedItems.length; i++) {
                                        if (checkedItems[i]) {
                                            buffer.append(items[i] + " ");
                                        }
                                    }
                                    Toast.makeText(MainActivity.this,
                                            buffer.toString(), Toast.LENGTH_SHORT)
                                            .show();
                                    buffer.setLength(0);
                                }
                            });
                    builder.show();
                }
            });
    
            // 给【弹出进度对话框】按钮注册监听器,实现监听器接口,编写事件处理代码
            btnProgressDialog.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
    
                    progressDialog = new ProgressDialog(MainActivity.this);
                    progressDialog
                            .setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                    progressDialog.setMessage("正在加载...");
                    progressDialog.setMax(100);
                    progressDialog.setProgress(0);
                    progressDialog.show();
    
                    // 创建消息处理器
                    handler = new Handler() {
                        @Override
                        public void handleMessage(Message msg) {
                            super.handleMessage(msg);
                            if (msg.what == 0x001) {
                                progress++;
                                progressDialog.setProgress(progress);
                                if (progress == 100) {
                                    isRunning = false;
                                    progressDialog.dismiss();
                                    Toast.makeText(MainActivity.this, "恭喜,加载完成。",
                                            Toast.LENGTH_SHORT).show();
                                }
                            }
                        }
                    };
    
                    // 创建线程,定时发送消息
                    isRunning = true;
                    thread = new Thread(new Runnable() {
    
                        @Override
                        public void run() {
                            while (isRunning) {
                                handler.sendEmptyMessage(0x001);
                                try {
                                    Thread.sleep(100);
                                } catch (InterruptedException e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    });
    
                    thread.start(); // 启动线程
                }
            });
    
            // 给【弹出自定义对话框】按钮注册监听器,实现监听器接口,编写事件处理代码
            btnCustomDialog.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    final Dialog dialog = new Dialog(MainActivity.this);
                    dialog.setContentView(R.layout.custom_dialog);
                    dialog.setTitle("用户登录");
                    dialog.show();
    
                    Button btnLogin = dialog.findViewById(R.id.btnLogin);
                    Button btnCancel = dialog.findViewById(R.id.btnCancel);
    
                    btnLogin.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            Toast.makeText(MainActivity.this, "你单击了【登录】按钮。",
                                    Toast.LENGTH_SHORT).show();
                        }
                    });
    
                    btnCancel.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            dialog.dismiss(); // 关闭自定义对话框
                        }
                    });
                }
            });
    
            // 给【弹出日期拾取对话框】按钮注册监听器,实现监听器接口,编写事件处理代码
            btnDatePickerDialog.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    DatePickerDialog dialog = new DatePickerDialog(
                            MainActivity.this,
                            new DatePickerDialog.OnDateSetListener() {
                                @Override
                                public void onDateSet(DatePicker view, int year,
                                                      int monthOfYear, int dayOfMonth) {
                                    calendar = Calendar.getInstance();
                                    calendar.set(Calendar.YEAR, year);
                                    calendar.set(Calendar.MONTH, monthOfYear);
                                    calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                                    sdf = new SimpleDateFormat("yyyy-MM-dd");
                                    tvDate = (TextView) findViewById(R.id.tvDate);
                                    tvDate.setText("日期:"
                                            + sdf.format(calendar.getTime()));
                                }
                            }, 2020, 12, 23);
                    dialog.show();
                }
            });
    
            // 给【弹出时间拾取对话框】按钮注册监听器,实现监听器接口,编写事件处理代码
            btnTimePickerDialog.setOnClickListener(new View.OnClickListener() {
                private TextView tvTime;
                private SimpleDateFormat sdf;
                private Calendar calendar;
    
                @Override
                public void onClick(View v) {
                    TimePickerDialog dialog = new TimePickerDialog(
                            MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
                        @Override
                        public void onTimeSet(TimePicker view,
                                              int hourOfDay, int minute) {
                            calendar = Calendar.getInstance();
                            calendar.set(Calendar.HOUR, hourOfDay);
                            calendar.set(Calendar.MINUTE, minute);
                            sdf = new SimpleDateFormat("hh:mm:ss");
                            tvTime = (TextView) findViewById(R.id.tvTime);
                            tvTime.setText("时间:"
                                    + sdf.format(calendar.getTime()));
                        }
                    }, 20, 14, true); // 24小时制
                    dialog.show();
                }
            });
    
        }
    }
    

    7、启动应用,查看效果

    在这里插入图片描述

    展开全文
  • 自定义安卓对话框

    2019-02-14 11:32:41
    // AlertDialog.Builder builder = new AlertDialog.Builder(ChuxingActivity.this); // builder.setTitle("若想成功必先自宫"...//设置对话框的标题 // builder.setMessage("请问你真的要取消...
    //                AlertDialog.Builder builder = new AlertDialog.Builder(ChuxingActivity.this);
    //                builder.setTitle("若想成功必先自宫");//设置对话框的标题
    //                builder.setMessage("请问你真的要取消充值码,可能会影响你的正常使用?");//设置对话框的内容
    //                builder.setNegativeButton("确定", new DialogInterface.OnClickListener() {  //取消按钮
    //
    //                    @Override
    //                    public void onClick(DialogInterface arg0, int arg1) {
    //                        // finish();//加这句话退出这个页面了
    //                        Toast.makeText(ChuxingActivity.this, "你这样对待宝宝心里很难受", Toast.LENGTH_SHORT).show();
    //                    }
    //                });
    //                builder.setPositiveButton("取消", new DialogInterface.OnClickListener() {  //这个是设置确定按钮
    //
    //                    @Override
    //                    public void onClick(DialogInterface arg0, int arg1) {
    //                       // dialog.cancel();写不写都行
    //                    }
    //                });
    //                AlertDialog dialog = builder.create();    //创建对话框
    //                dialog.setCanceledOnTouchOutside(true);    //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
    //                dialog.show();//必须show一下才能看到对话框,跟Toast一样的道理
    代码运行效果

     

    展开全文
  • 安卓对话框连接数据库制作数据表(增删改查) 1.布局 创建activity_main.xml布局文件。 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=...
  • 安卓 对话框大全

    2017-02-11 21:08:31
    </div><!--end: blogStats --> </div><!--end: navigator 博客导航栏 --> Android 对话框(Dialog)大全 建立你自己的对话框 <div id="cnblogs_post_bo
  • ``` Builder builder=new Builder(this); builder.setTitle("单选框"); builder.setMessage("有本事你选"); ... builder.setPositiveButton("确定", new OnClickListener(){ ... public void onClick...
  • 这个适用于自己弄个推广,或者广告,一个悬浮的对话框,并且点击下面activity 的东西,对话框不会消失
  • 3.各种对话框的运行JAVA代码。 Mani3Activity.java 第一种:一般对话框 1 package com.example.administrator.android; 2 3 import android.app.AlertDialog; 4 import android.app....
  • 在正常使用 PopupWindow 时不是很难,只需要几行代码就能实现一个对话框,但是有很多方法都是重复的,PopupWindow 本身会有一些局限性,需要处理。仅仅使用 PopupWindow 就可以满足项目中大部分的对话框需求。封装后...
  • 对话框
  • Material Dialogs Table of Contents (Core) Sample Project Gradle Dependency Repository Core Commons What's New Basic Dialog Dismissing Dialogs ...Getting and Setting Action Bu

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,167
精华内容 466
关键字:

安卓对话框