ADD file via upload

zhangle_branch
p7fesry82 1 year ago
parent c32acb9372
commit ecf257fe70

@ -0,0 +1,79 @@
package soc;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
import android.widget.DatePicker;
import android.widget.TimePicker;
import java.util.Calendar;
public class DateTimePickerDialog extends DialogFragment
implements DatePickerDialog.OnDateSetListener, TimePickerDialog.OnTimeSetListener {
private static final String ARG_DATE = "date";
private Calendar date;
public static DateTimePickerDialog newInstance(Calendar initialDate) {
DateTimePickerDialog dialog = new DateTimePickerDialog();
Bundle args = new Bundle();
args.putSerializable(ARG_DATE, initialDate);
dialog.setArguments(args);
return dialog;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
date = (Calendar) getArguments().getSerializable(ARG_DATE);
}
if (date == null) {
date = Calendar.getInstance();
}
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
int year = date.get(Calendar.YEAR);
int month = date.get(Calendar.MONTH);
int day = date.get(Calendar.DAY_OF_MONTH);
// 创建一个新的 DatePickerDialog 实例并返回
return new DatePickerDialog(requireActivity(), this, year, month, day);
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
date.set(Calendar.YEAR, year);
date.set(Calendar.MONTH, month);
date.set(Calendar.DAY_OF_MONTH, day);
int hour = date.get(Calendar.HOUR_OF_DAY);
int minute = date.get(Calendar.MINUTE);
// 创建新的 TimePickerDialog 实例并显示
new TimePickerDialog(requireActivity(), this, hour, minute, true).show();
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
date.set(Calendar.HOUR_OF_DAY, hourOfDay);
date.set(Calendar.MINUTE, minute);
// 通知监听器(如果有的话)关于选定的日期和时间
if (getTargetFragment() != null && getTargetFragment() instanceof OnDateTimeSetListener) {
((OnDateTimeSetListener) getTargetFragment()).onDateTimeSet(date);
} else if (getActivity() instanceof OnDateTimeSetListener) {
((OnDateTimeSetListener) getActivity()).onDateTimeSet(date);
}
}
public interface OnDateTimeSetListener {
void onDateTimeSet(Calendar date);
}
}
Loading…
Cancel
Save