<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/date_picker_dialog"
android:onClick="datePickerClick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/time_picker_dialog"
android:onClick="timePickerClick"/>
<DatePicker
android:id="@+id/date_picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TimePicker
android:id="@+id/time_picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:timePickerMode="spinner"/>
</LinearLayout>
import androidx.appcompat.app.AppCompatActivity;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TimePicker;
import com.thomas.android.base.R;
import java.util.Calendar;
public class TimePickerActivity extends AppCompatActivity {
private DatePicker date_picker;
private TimePicker time_picker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_time_picker);
date_picker = findViewById(R.id.date_picker);
time_picker = findViewById(R.id.time_picker);
time_picker.setIs24HourView(true);
initDatePicker();
initTimePicker();
}
private void initTimePicker() {
time_picker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker timePicker, int hourOfDay, int minute) {
System.out.println("hourOfDay " + hourOfDay+" minute " + minute);
}
});
}
private void initDatePicker() {
date_picker.init(date_picker.getYear(), date_picker.getMonth(), date_picker.getDayOfMonth(), new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
monthOfYear = monthOfYear + 1;
System.out.println("year " + year+" monthOfYear " + monthOfYear+" dayOfMonth " + dayOfMonth);
}
});
}
public void timePickerClick(View view) {
Calendar calendar= Calendar.getInstance();
TimePickerDialog dialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int i, int i1) {
}
}, calendar.get(Calendar.HOUR), calendar.get(Calendar.MINUTE), true);
dialog.show();
}
public void datePickerClick(View view) {
Calendar calendar= Calendar.getInstance();
// themeResId you can also use DatePickerDialog.THEME_HOLO_LIGHT
// when you do not set theme the default is material style
DatePickerDialog dialog = new DatePickerDialog(this, R.style.DatePickerDialogTheme, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int dayOfMonth) {
}
},calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH));
//设置起始日期和结束日期
DatePicker datePicker = dialog.getDatePicker();
datePicker.setMinDate(System.currentTimeMillis() - 1000*60*60*24*365L*2);
datePicker.setMaxDate(System.currentTimeMillis());
dialog.show();
}
}
设置style
效果