Android--对话框

对话框

类型

提示对话框(AlertDialog)
进度对话框(ProgressDialog)
日期选择对话框(DatePickerDialog)
时间选择对话框(TimdPickerDialog)

dialog=new AlertDialog.Builder(MainActivity.this)
            .setTitle("Dialog对话框")
			.setMessage("是否确定退出?").setIcon(R.drawable.ic_launcher)
			.setPositiveButton("确定",null)
			.setNegativeButton("取消",null)
            .create();
			
            dialog.show();

示例

1)界面构成:

①3个文本框用于显示提示信息“闹钟名称:”、“设定日期”、“设定时间”;

②3个编辑框分别用于接收和显示闹钟名称、设定日期、设定时间;

③2个普通按钮,文本分别显示为“定制”、“取消”。

(2)程序功能:

①单击“定制”按钮,获取设定的闹钟名称、日期、时间,并在Toast中显示闹钟定制的信息;

②单击“取消”按钮,弹出AlertDialog提示框,标题为“取消闹钟”,提示消息为“是否取消闹钟”,包含“确定”和“取消”按钮;

③长击“设定日期”编辑框,弹出DatePickerDialog,选择一个日期并显示在该编辑框中;

④长击“设定时间”编辑框,弹出TimePickerDialog,选择一个时间并显示在该编辑框中;

布局界面

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:orientation="vertical"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="闹钟名称:"/>
        <EditText
            android:id="@+id/et_name"
            android:layout_width="200dp"
            android:layout_height="wrap_content" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="设定日期:"/>
        <EditText
            android:id="@+id/et_date"
            android:layout_width="200dp"
            android:layout_height="wrap_content" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="设定时间:"/>
        <EditText
            android:id="@+id/et_time"
            android:layout_width="200dp"
            android:layout_height="wrap_content"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <Button
            android:id="@+id/bt_set"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="定制"
            />
        <Space
            android:layout_width="10dp"
            android:layout_height="wrap_content"/>
        <Button
            android:id="@+id/bt_cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="取消"/>
    </LinearLayout>




</LinearLayout>

MainActivity.java

package com.star.shiyan0701;

import androidx.appcompat.app.AppCompatActivity;

import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TimePicker;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    EditText etName,etDate,etTime;
    Button btSet,btCancel;
    String name,date,time;

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

        init();
        getData();
        btSet.setOnClickListener(new ButtonListener());
        btCancel.setOnClickListener(new ButtonListener());
        //时间弹窗
        etTime.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
                TimePickerDialog tpd = new TimePickerDialog(MainActivity.this,
                        new TimePickerDialog.OnTimeSetListener() {
                            @Override
                            public void onTimeSet(TimePicker timePicker, int i, int i1) {
                                etTime.setText(i+":"+i1);
                            }
                        },
                        11,
                        11,
                        true);
                tpd.show();
                return false;
            }
        });

        //日期弹窗
        etDate.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
                DatePickerDialog dpd = new DatePickerDialog(
                        MainActivity.this,
                        new DatePickerDialog.OnDateSetListener() {
                            @Override
                            public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
                                etDate.setText(i+"-"+i1+"-"+i2);
                            }
                        },
                        2022,
                        4,
                        29);
                dpd.show();
                return false;
            }
        });

    }

    class ButtonListener implements View.OnClickListener{
        @Override
        public void onClick(View view) {
            switch (view.getId()){
                case R.id.bt_set:
                    getData();
                    Toast.makeText(MainActivity.this, "闹钟名称:"+name+"\n设定日期"+date+"\n设定时间:"+time, Toast.LENGTH_SHORT).show();
                    break;
                case R.id.bt_cancel:
                    AlertDialog ad = new AlertDialog.Builder(
                            MainActivity.this)
                            .setTitle("取消闹钟")
                            .setMessage("是否取消闹钟")
                            .setPositiveButton("是",new C1())
                            .setNegativeButton("否",null)
                            .create();
                    ad.show();
                    break;
            }
        }
    }

    class C1 implements DialogInterface.OnClickListener{

        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            init();
            etName.setText("");
            etDate.setText("");
            etTime.setText("");
        }
    }
    //
    private void init(){
        etName = findViewById(R.id.et_name);
        etDate = findViewById(R.id.et_date);
        etTime = findViewById(R.id.et_time);
        btSet = findViewById(R.id.bt_set);
        btCancel = findViewById(R.id.bt_cancel);
    }

    public void getData(){
        name = etName.getText().toString();
        date = etDate.getText().toString();
        time = etTime.getText().toString();
    }
}

运行效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ML.star

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值