package com.zhen.accountbook.utils;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import androidx.annotation.NonNull;
import com.zhen.accountbook.R;
//在记录页面弹出时间对话框
public class SelectTimeDialog extends Dialog implements View.OnClickListener {
EditText hourEt, minEt;
DatePicker datePicker;
Button ensureBtn, cancelBtn;
public interface OnEnsureListener {
public void onEnsure(String time, int year, int month, int day);
}
public void setOnEnsureListener(OnEnsureListener onEnsureListener) {
this.onEnsureListener = onEnsureListener;
}
OnEnsureListener onEnsureListener;
public SelectTimeDialog(@NonNull Context context) {
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_calendar);
hourEt = findViewById(R.id.dialog_time_et_hour);
minEt = findViewById(R.id.dialog_time_et_min);
datePicker = findViewById(R.id.dialog_time_dp);
ensureBtn = findViewById(R.id.dialog_time_btn_ensure);
cancelBtn = findViewById(R.id.dialog_time_btn_cancel);
ensureBtn.setOnClickListener(this);
cancelBtn.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (view.getId() == R.id.dialog_time_btn_ensure) {
if (onEnsureListener != null) {
int year = datePicker.getYear();
int month = datePicker.getMonth() + 1;
int day = datePicker.getDayOfMonth();
String monthStr = String.valueOf(month);
if (month < 10) {
monthStr = "0" + month;
}
String dayStr = String.valueOf(day);
if (day < 10) {
dayStr = "0" + day;
}
String hourStr=hourEt.getText().toString();
String minStr=minEt.getText().toString();
int hour=0;
if (!TextUtils.isEmpty(hourStr)) {
hour=Integer.parseInt(hourStr);
hour=hour%24;
}
int min=0;
if (!TextUtils.isEmpty(minStr)) {
min=Integer.parseInt(minStr);
min=min%60;
}
hourStr=String.valueOf(hour);
minStr=String.valueOf(min);
if (hour<10) {
hourStr="0"+hourStr;
}
if (min<10) {
minStr="0"+minStr;
}
String time=year+"-"+monthStr+"-"+dayStr+" "+hourStr+":"+minStr;
onEnsureListener.onEnsure(time,year,month,day);
}
} else if (view.getId() == R.id.dialog_time_btn_cancel) {
cancel();
}
}
//隐藏 DatePicker头布局
// private void hideDatePickerHeader(){
// ViewGroup rootView= (ViewGroup) datePicker.getChildAt(0);
// if (rootView==null){
// return ;
// }View headView=rootView.getChildAt(0);
// if(headView==null){
// return ;
// }
// }
}