场景
实现效果如下
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
将布局改为相对布局,然后添加一个DataPicker,并添加id属性。
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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=".DataPickerActivity"> <DatePicker android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/datePicker"/> </RelativeLayout>
然后找到Activity
首先设置用来存储年月日和日期选择器的变量,然后获取当前日期,再初始化日期选择器并设置日期改变监听器。
在监听器中获取选中的日期的年月日并显示。
package com.badao.relativelayouttest; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.DatePicker; import android.widget.Toast; import java.util.Calendar; public class DataPickerActivity extends AppCompatActivity { //用来存储年月日 int year,month,day; //存储页面上的日期选择器 DatePicker datePicker; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_data_picker); //获取页面上的日期选择器 datePicker = (DatePicker) findViewById(R.id.datePicker); //获取当前日期 Calendar calendar = Calendar.getInstance(); year = calendar.get(Calendar.YEAR); month = calendar.get(Calendar.MONTH); day = calendar.get(Calendar.DAY_OF_MONTH); //初始化日期选择器并设置日期改变监听器 datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { //获取选中的年月日 DataPickerActivity.this.year = year; //月份是从0开始的 DataPickerActivity.this.month = (monthOfYear+1); DataPickerActivity.this.day = dayOfMonth; //弹窗显示 Toast.makeText(DataPickerActivity.this,DataPickerActivity.this.year+"年"+DataPickerActivity.this.month+"月"+DataPickerActivity.this.day+"日",Toast.LENGTH_SHORT).show(); } }); } }