Android中常用Dialog(弹窗)
ProgressDialog
private void showProgressDialog(){
progressDialog = new ProgressDialog(DialogDemo.this);
//设置提示信息
progressDialog.setTitle("提示");
progressDialog.setIcon(R.mipmap.touxiang0);
progressDialog.setMessage("正在处理中");
//是否用过返回键取消
progressDialog.setCancelable(true);
//碰触弹框之外的地方取消
progressDialog.setCanceledOnTouchOutside(true);
//显示
progressDialog.show();
}
DatePickerDialog
//日期
private void datePickerDialog(){
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){
DatePickerDialog datePickerDialog = new DatePickerDialog(DialogDemo.this);
datePickerDialog.setOnDateSetListener(new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Toast.makeText(DialogDemo.this,year+"年"+(month+1)+"月"+dayOfMonth+"日",Toast.LENGTH_SHORT).show();
}
});
datePickerDialog.show();
}else {
Toast.makeText(DialogDemo.this,"版本过低",Toast.LENGTH_SHORT).show();
}
}
TimePickerDialog
//时间
private void timePickerDialog(){
//获得日历的实列
Calendar calendar = Calendar.getInstance();
//设置当前时间
calendar.setTimeInMillis(System.currentTimeMillis());
//获取时分
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
//第三、四个参数初始时分 第五个参数是否为24小时显示
TimePickerDialog time = new TimePickerDialog(DialogDemo.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Toast.makeText(DialogDemo.this,"Hour"+hourOfDay+"minute"+minute,Toast.LENGTH_SHORT).show();
}
},hour,minute,true);
time.show();
}
布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
android:gravity="center_horizontal"
>
<Button
android:id="@+id/btnProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="35dp"
android:backgroundTint="#64D7E6"
android:text="提示"
android:textSize="35sp"
/>
<Button
android:id="@+id/btnDatePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="35dp"
android:backgroundTint="#64D7E6"
android:text="日期"
android:textSize="35sp"
/>
<Button
android:id="@+id/btnTimePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="35dp"
android:backgroundTint="#64D7E6"
android:text="时间"
android:textSize="35sp"
/>
</LinearLayout>
完整代码
import androidx.appcompat.app.AppCompatActivity;
import android.app.DatePickerDialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;
import java.util.Calendar;
public class DialogDemo extends AppCompatActivity {
Button mBtnProgress,mBtnDatePicker,mBtnTimePicker;
ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog_demo);
initView();
MyOnClick myOnClick = new MyOnClick();
mBtnProgress.setOnClickListener(myOnClick);
mBtnDatePicker.setOnClickListener(myOnClick);
mBtnTimePicker.setOnClickListener(myOnClick);
}
private void initView(){
mBtnProgress = findViewById(R.id.btnProgress);
mBtnDatePicker = findViewById(R.id.btnDatePicker);
mBtnTimePicker = findViewById(R.id.btnTimePicker);
}
class MyOnClick implements View.OnClickListener {
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.btnProgress:
showProgressDialog();
break;
case R.id.btnDatePicker:
datePickerDialog();
break;
case R.id.btnTimePicker:
timePickerDialog();
break;
}
}
}
private void showProgressDialog(){
progressDialog = new ProgressDialog(DialogDemo.this);
//设置提示信息
progressDialog.setTitle("提示");
progressDialog.setIcon(R.mipmap.touxiang0);
progressDialog.setMessage("正在处理中");
//是否用过返回键取消
progressDialog.setCancelable(true);
//碰触弹框之外的地方取消
progressDialog.setCanceledOnTouchOutside(true);
//显示
progressDialog.show();
}
//日期
private void datePickerDialog(){
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){
DatePickerDialog datePickerDialog = new DatePickerDialog(DialogDemo.this);
datePickerDialog.setOnDateSetListener(new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Toast.makeText(DialogDemo.this,year+"年"+(month+1)+"月"+dayOfMonth+"日",Toast.LENGTH_SHORT).show();
}
});
datePickerDialog.show();
}else {
Toast.makeText(DialogDemo.this,"版本过低",Toast.LENGTH_SHORT).show();
}
}
//时间
private void timePickerDialog(){
//获得日历的实列
Calendar calendar = Calendar.getInstance();
//设置当前时间
calendar.setTimeInMillis(System.currentTimeMillis());
//获取时分
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
//第三、四个参数初始时分 第五个参数是否为24小时显示
TimePickerDialog time = new TimePickerDialog(DialogDemo.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Toast.makeText(DialogDemo.this,"Hour"+hourOfDay+"minute"+minute,Toast.LENGTH_SHORT).show();
}
},hour,minute,true);
time.show();
}
}