对话框
类型
提示对话框(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();
}
}