需要用到的原因是,我在公司做一个统计功能,这个功能需要有一个日期筛选功能。大概需求就是先择一个时间范围。选择时间范围是点击按钮弹出两个日历,第一个是开始日期,第二个是结束日期,不说了上代码
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="400dp">
<Button
android:id="@+id/showdailogTwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="日期选择日期范围"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<?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:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="15dp"
android:text="开始时间" />
<DatePicker
android:id="@+id/st"
android:layout_width="wrap_content"
android:layout_height="198dp"
android:calendarViewShown="false"></DatePicker>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="结束时间" />
<DatePicker
android:id="@+id/et"
android:layout_width="wrap_content"
android:layout_height="198dp"
android:calendarViewShown="false"></DatePicker>
</LinearLayout>
String st;
String et;
protected void showDialogTwo() {
View view = LayoutInflater.from(getContext()).inflate(R.layout.dialog_date, null);
final DatePicker startTime = (DatePicker) view.findViewById(R.id.st);
final DatePicker endTime = (DatePicker) view.findViewById(R.id.et);
startTime.updateDate(startTime.getYear(), startTime.getMonth(), 01);
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle("选择时间");
builder.setView(view);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int month = startTime.getMonth() + 1;
st = "" + startTime.getYear() + "-" + month + "-" + startTime.getDayOfMonth();
int month1 = endTime.getMonth() + 1;
et = "" + endTime.getYear() + "-" + month1 + "-" + endTime.getDayOfMonth();
Toast.makeText(getContext(), "开始日期是:" + st + "结束日期是:" + et, Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", null);
AlertDialog dialog = builder.create();
dialog.show();
//自动弹出键盘问题解决
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}