张萌&韩墨羽——Dialog对话框


在这里插入图片描述

一.常用的对话框

1.普通对话框

public void MyCustomDialog(){
        //TODO 1:构建者
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        //TODO 2:设置属性
        builder.setTitle("韩墨羽");
        builder.setMessage("好喜欢你");
        builder.setIcon(R.mipmap.y);

        //TODO 设置确定按钮
        builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你点击了确认", Toast.LENGTH_SHORT).show();
            }
        });
        //TODO 设置取消按钮
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
            }
        });

        //TODO 3:使用建造者创建对话框
        AlertDialog dialog = builder.create();
        //TODO 4:显示
        dialog.show();
    }

2.单选对话框

public void MySingleDialoy(){
        //TODO 1:构建者
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        //TODO 2:设置属性
        builder.setIcon(R.drawable.ic_launcher_background);//设置图标
        builder.setTitle("喜欢你的核心要素");//设置标题
        //TODO 设置确定按钮
        builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你点击了确认", Toast.LENGTH_SHORT).show();
            }
        });
        //TODO 设置取消按钮
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
            }
        });

        final String[] itmes={"时间","空间","机遇"};
        //TODO 设置单选列表
        //TODO  参数一 列表  参数二 默认选中下表  参数三 事件监听
        builder.setSingleChoiceItems(itmes, 2, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你选择的是"+itmes[which], Toast.LENGTH_SHORT).show();
            }
        });
        //TODO 3:使用建造者创建对话框
        AlertDialog dialog = builder.create();
        //TODO 4:显示
        dialog.show();
    }

3.多选对话框

public void MyMuliteDialog(){
        final String[] items={"许梦欣","王思萌","杨迪","徐可冉","赵璐","贺庆","黄珂","杨雅菲","韩墨羽"};
        final boolean[] flag={true,false,false,false,false,false,false,false,false};
        //TODO 1:构建者
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        //TODO 2:设置属性
        builder.setIcon(R.mipmap.y);
        builder.setTitle("在一起过的人");
        //TODO 设置确定按钮
        builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                for (int i = 0; i < flag.length; i++) {
                    if (flag[i]){
                        Toast.makeText(MainActivity.this, "是"+items[i], Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });
        //TODO 设置取消按钮
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();
            }
        });
        //TODO 设置多选列表
        //TODO  参数一 列表  参数二 默认选中下表  参数三 事件监听
        builder.setMultiChoiceItems(items, flag, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                flag[which]=isChecked;
            }
        });
        //TODO 3:使用建造者创建对话框
        AlertDialog alertDialog = builder.create();
        //TODO 4:显示
        alertDialog.show();
    }

4.自定义对话框

public void MyDialog(){
        //TODO 1:构建者
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        //TODO 2:设置属性
        builder.setTitle("老婆");
        builder.setIcon(R.mipmap.y);
        //TODO 3:设置内部视图
        ImageView imageView = new ImageView(this);
        imageView.setImageResource(R.mipmap.u);
        builder.setView(imageView);
        //TODO 设置确定按钮
        builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你点击了确认", Toast.LENGTH_SHORT).show();
            }
        });
        //TODO 设置取消按钮
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
            }
        });
        //TODO 3:使用建造者创建对话框
        AlertDialog alertDialog = builder.create();
        //TODO 4:显示
        alertDialog.show();
    }

5.水平进度条对话框

private void MyHorizontalDialog() {
        //TODO 1:构建者
        final ProgressDialog dialog = new ProgressDialog(this);
        //TODO 2:设置属性
        dialog.setIcon(R.mipmap.y);
        dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        dialog.setTitle("爱的加载");
        dialog.setMax(100);
        dialog.setMessage("慢慢的爱不停...");
        //TODO 设置确定按钮
        dialog.setButton(DialogInterface.BUTTON_POSITIVE,"确认", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你点击了确认", Toast.LENGTH_SHORT).show();
            }
        });
        //TODO 设置取消按钮
        dialog.setButton(DialogInterface.BUTTON_NEGATIVE,"取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
            }
        });
        dialog.show();

        final Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            int progress=0;
            @Override
            public void run() {
                if (progress==dialog.getMax()){
                    timer.cancel();
                }
                dialog.setProgress(progress+=1);
            }
        },0,10);
    }

6.圆形进度条对话框

private void MySpinnerDialog() {
        //TODO 1:构建者
        final ProgressDialog dialog = new ProgressDialog(this);
        //TODO 2:设置属性
        dialog.setIcon(R.mipmap.y);
        dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        dialog.setTitle("爱的加载");
        dialog.setMax(100);
        dialog.setMessage("慢慢的爱不停...");
        //TODO 设置确定按钮
        dialog.setButton(DialogInterface.BUTTON_POSITIVE,"确认", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你点击了确认", Toast.LENGTH_SHORT).show();
            }
        });
        //TODO 设置取消按钮
        dialog.setButton(DialogInterface.BUTTON_NEGATIVE,"取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
            }
        });
        dialog.show();
    }

7.日期选择对话框

private void MyDateDialog() {
        Calendar calendar = Calendar.getInstance();
        /**
         * @param context 上下文
         * @param listener 监听器
         */
        new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            /**
             *
             * @param view
             * @param year 默认的年
             * @param month 默认的月
             * @param dayOfMonth 默认的日
             */
            @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.MONTH),calendar.get(Calendar.DAY_OF_MONTH)).show();
    }

8.时间选择对话框

private void MyTimeDialog() {
        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();
    }

二.自定义对话框

布局

private void ziDingYi_Dialog() {
        MyDialog_diy myDialog_diy = new MyDialog_diy(this);
        myDialog_diy.setTitle("韩墨羽");
        myDialog_diy.setMessage("真的好喜欢你");
        myDialog_diy.setYesOnclickListener("确认",new MyDialog_diy.onYesOnclickListener(){
            @Override
            public void onYesOnclick() {
                Toast.makeText(MainActivity.this, "确认", Toast.LENGTH_SHORT).show();

            }
        });
        myDialog_diy.setNoOnclickListener("取消", new MyDialog_diy.onNoOnclickListener() {
            @Override
            public void onNoclick() {
                Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();
            }
        });
        myDialog_diy.show();
    }

在这里插入图片描述

自定义类

public class MyDialog_diy extends Dialog {
    private Button yes;//确定按钮
    private Button no;//取消按钮
    private TextView titleTV;//消息标题文本
    private TextView message;//消息提示文本
    private String titleStr;//从外界设置的title文本
    private String messageStr;//从外界设置的消息文本
    private String yesStr, noStr;//确定文本和取消文本的显示的内容
    private onNoOnclickListener noOnclickListener;//取消按钮被点击了的监听器
    private onYesOnclickListener yesOnclickListener;//确定按钮被点击了的监听器

    public MyDialog_diy(Context context, int themeResId) {
        super(context, themeResId);

        WindowManager windowManager = getWindow().getWindowManager();
        Display display = windowManager.getDefaultDisplay();
        WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
        layoutParams.width=display.getWidth()*4/5;
        getWindow().setAttributes(layoutParams);
    }

    public MyDialog_diy(Context context) {
        super(context);
        //去掉默认的标题栏
        requestWindowFeature(Window.FEATURE_NO_TITLE);
    }
    /**
     * 设置取消按钮的显示内容和监听
     *
     * @param str
     * @param onclickListener
     */
    public void setNoOnclickListener(String str,onNoOnclickListener onclickListener){
        if (str!=null){
            noStr=str;
        }
        this.noOnclickListener=onclickListener;
    }
    /**
     * 设置确定按钮的显示内容和监听
     *
     * @param str
     * @param onclickListener
     */
    public void setYesOnclickListener(String str,onYesOnclickListener onclickListener){
        if (str!=null){
            yesStr=str;
        }
        this.yesOnclickListener=onclickListener;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.zidingyi_dialog);
        //空白处不能取消动画
        setCanceledOnTouchOutside(false);

        //初始化界面控件
        initView();
        //初始化界面数据
        iniytData();
        //初始化界面控件的事件
        initEvent();
    }
    private void initView(){
        yes=findViewById(R.id.yes);
        no=findViewById(R.id.no);
        titleTV = findViewById(R.id.title);
        message = findViewById(R.id.message);
    }
    /**
     * 初始化界面控件的显示数据
     */
    private void iniytData(){
        if (titleStr!=null){
            titleTV.setText(titleStr);
        }
        if (messageStr!=null){
            message.setText(messageStr);
        }
        if (yesStr!=null){
            yes.setText(yesStr);
        }
        if (noStr!=null){
            no.setText(noStr);
        }
    }
    /**
     * 初始化界面的确定和取消监听
     */
    private void initEvent(){
        //设置确定按钮被点击后,向外界提供监听
        yes.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (yesOnclickListener!=null){
                    yesOnclickListener.onYesOnclick();
                }
            }
        });
        //设置取消按钮被点击后,向外界提供监听
        no.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (noOnclickListener!=null){
                    noOnclickListener.onNoclick();
                }
            }
        });
    }
    /**
     * 从外界Activity为Dialog设置标题
     *
     * @param title
     */
    public void setTitle(String title){
        titleStr=title;
    }
    public void setMessage(String message){
        messageStr=message;
    }
    public interface onNoOnclickListener{
        public void onNoclick();
    }
    public interface onYesOnclickListener{
        public void onYesOnclick();
    }
}
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园建设是当前高校关注的焦点之一。本文将从智慧校园建设的问题与对策、水平评价、第三方企业代理、国内研究综述和技术标准等方面进行综合分析。 首先,文献[6]针对高校智慧校园建设问题进行了研究。从智慧校园建设的现状和存在的问题出发,提出了相应的对策。例如,加强对智慧校园建设的投入、完善智慧校园建设的相关规定等。 其次,文献[7]则从智慧校园建设水平评价出发,提出了评价指标和方法,并对评价结果进行了解读。该文献为高校智慧校园建设提供了一定的参考依据。 此外,文献[8]则提出了第三方企业代理智慧校园建设、评价与改进策略。该方案可以有效地提高智慧校园建设效率和质量,避免了高校在建设过程中可能遇到的困难。 同时,文献[9]则对国内智慧校园研究综述进行了总结和反思。该文献指出,虽然国内对智慧校园建设进行了一定的研究,但是仍然存在很多问题需要解决,例如如何保证智慧校园中的数据安全和隐私保护等。 最后,文献[10]则从技术标准的角度探讨了智慧校园建设的相关问题。该文献指出,智慧校园建设需要遵循相应的技术标准,才能保证智慧校园的正常运行。 综合以上五篇文献可以看出,智慧校园建设是当前高校关注的重要领域。虽然各高校在智慧校园建设方面已经有所建设,但是仍然存在很多问题需要解决。例如,如何保证数据的安全和隐私的保护等。在未来的发展中,除了需要加强对智慧校园建设的投入之外,还需要加强对智慧校园建设中所面临的问题的研究与解决。同时,在智慧校园建设过程中,需要遵循相应的技术标准,以保证智慧校园的正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值