第一天——对话框

China☆狼群 提交于 2019-12-27 00:19:33

对话框

普通的对话框

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setIcon(R.drawable.ic_launcher_background);

        builder.setTitle("hello body");
        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();     
            }
        });

        AlertDialog alertDialog = builder.create();

        alertDialog.show();

在这里插入图片描述

单选对话框

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);


        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setIcon(R.drawable.ic_launcher_background);
        builder.setTitle("请选择您的出生地");

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

        final String[] items = {"北京","成都","西安"};


        builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(Main2Activity.this, "您选中的城市是"+items[which], Toast.LENGTH_SHORT).show();
            }
        });

        AlertDialog alertDialog = builder.create();

        alertDialog.show();

在这里插入图片描述

多选对话框

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);

        String[] items = {"中国","日本","韩国","美国"};
        final boolean[] flasgs = {true,true,false,false};


        final AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setIcon(R.drawable.ic_launcher_background);
        builder.setTitle("下列哪些地区是中国的");

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

        builder.setMultiChoiceItems(items, flasgs, new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                    flasgs[which] = isChecked;
            }
        });

        AlertDialog alertDialog = builder.create();

        alertDialog.show();

在这里插入图片描述

自定义对话框

java的代码

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);

        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setView(R.layout.style_layout);

        AlertDialog alertDialog = builder.create();

        alertDialog.show();

    }

对应布局的代码

<?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"
    android:gravity="center">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="这是一张图片"
        />
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/img1"/>

</LinearLayout>

在这里插入图片描述

带有水平进度条的对话框

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main5);

        final ProgressDialog dialog = new ProgressDialog(this);

        dialog.setMessage("正在下载");
        dialog.setMax(100);
        dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

        dialog.show();

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

在这里插入图片描述

带有环形进度条的对话框

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main6);

        final ProgressDialog dialog = new ProgressDialog(this);

        dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        dialog.setMax(100);
        dialog.setMessage("正在下载");

        dialog.show();

        final Timer timer = new Timer();

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

    }

在这里插入图片描述

可选择日期的对话框

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main7);

        Calendar instance = Calendar.getInstance();

        new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                Toast.makeText(Main7Activity.this, year+"-"+(month+1)+"-"+dayOfMonth, Toast.LENGTH_SHORT).show();
            }
        },instance.get(Calendar.YEAR),instance.get(Calendar.MARCH),instance.get(Calendar.DAY_OF_MONTH)).show();

    }

在这里插入图片描述

可选择时间的对话框

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main8);
        
        Calendar instance = Calendar.getInstance();

        new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                Toast.makeText(Main8Activity.this, "选中的时间是"+hourOfDay+":"+minute, Toast.LENGTH_SHORT).show();
            }
        },instance.get(Calendar.HOUR),instance.get(Calendar.MINUTE),true).show();
    }

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!