DatePicker:日期选择器
CalendarViewShow:是否显示日历视图
datePikerMode:组件外观,spinner:这个比较好看;还有一个是calendar
SpinnersShown:是否显示Spinner
DatePiker事件:DatePicker.OnDateChangedListener
这是网上的列子,里面是两个内容,如果吐司需要让日期和时间一起显示,那就是我注释的那部分代码。没注释的就是各自显示
activity_main.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:layout_marginTop="10dp"
android:layout_width="wrap_content"
android:layout_marginLeft="10dp"
android:layout_height="50dp"
android:id="@+id/show"
android:textSize="15dp"
android:cursorVisible="false"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<DatePicker
android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="2"
android:layout_gravity="center"
android:calendarViewShown="true"
android:datePickerMode="spinner"
android:spinnersShown="true" />
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginTop="10dp"
android:background="#CCC" />
<TimePicker
android:id="@+id/timePicker"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:timePickerMode="spinner" />
<TextView
android:layout_width="200dp"
android:layout_height="20dp"
android:text="请选择日期和时间"
android:layout_marginBottom="10dp"
android:layout_gravity="center"
android:textSize="20dp" />
</LinearLayout>
</LinearLayout>
MainActivity代码:
package com.example.datepickers;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TimePicker;
import android.widget.Toast;
import java.util.Calendar;
import java.util.Map;
public class MainActivity extends AppCompatActivity implements DatePicker.OnDateChangedListener {
//定义5个当前的时间变量
private int year;
private int month;
private int day;
private int hour;
private int minute;
private DatePicker datePicker ;
private TimePicker timePicker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
datePicker = findViewById(R.id.datePicker);
timePicker =findViewById(R.id.timePicker);
// //获取当前的年,月,日,小时,分钟
// Calendar c = Calendar.getInstance();
// year = c.get(Calendar.YEAR);
// month = c.get(Calendar.MONTH);
// day = c.get(Calendar.DAY_OF_MONTH);
// hour = c.get(Calendar.HOUR);
// minute = c.get(Calendar.MINUTE);
// //初始化DatePicker组件,初始化时指定监听器
// datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
// @Override
// public void onDateChanged(DatePicker datePicker, int year, int month, int day) {
// MainActivity.this.year = year;
// MainActivity.this.month = month;
// MainActivity.this.day = day;
// //显示当前日期,时间
// showDate(year,month,day,hour,minute);
// Toast.makeText(MainActivity.this,"您选择的日期:" +year +"年 " +month + "月 " +day+ "日",Toast.LENGTH_SHORT).show();
//
// }
//
//
// });
// //为TimePicker指定监听器
// timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
// @Override
// public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
// MainActivity.this.hour = hourOfDay;
// MainActivity.this.minute = minute;
// //显示当前日期,时间
// showDate(year,month,day,hour,minute);
// Toast.makeText(MainActivity.this,"您选择的时间:" +hourOfDay+ "时 " + minute +"分 ",Toast.LENGTH_SHORT).show();
// }
// });
//
// }
// //定义在EditText中显示当前日期,时间的方法
// private void showDate(int year, int month, int day, int hour, int minute) {
// EditText show = (EditText) findViewById(R.id.show);
// show.setText("日期和时间为:" + year + "年"
// + (month + 1) + "月" + day + "日 "
// + hour + "时" + minute + "分");
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,this);
}
@Override
public void onDateChanged(DatePicker datePicker, int year, int month, int day) {
Toast.makeText(MainActivity.this,"您选择的日期是"+year+"年"+month+"月"+day+"日",Toast.LENGTH_SHORT).show();
}
}
这里是固定写法!!!!!!就写一个简单的监听事件
//获取当前的年,月,日,小时,分钟
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,this);
}
@Override
public void onDateChanged(DatePicker datePicker, int year, int month, int day) {
Toast.makeText(MainActivity.this,"您选择的日期是"+year+"年"+month+"月"+day+"日",Toast.LENGTH_SHORT).show();
}
写这篇是方便我自己能看懂,(⊙o⊙)…
学习代码来源是:菜鸟驿站:点击查看代码好好学习,会有惊喜。
第二个来源是:CNSD学习DatePicker和TimePicker时间选择器。
多练!!!!!!!!!!!!
这里的话就多说两句:菜鸟驿站虽然里面的内容都是2015年的,但是不得不说虽然时间能改变,但是里面的内容都还是和现在大部分是一样的,而且里面的类容是比较适合初学者的,希望你们多去看看,当然也有进阶的!!!!!!!!!!!!!!
还有就是:虎课网学习,点击这里你们可以去看看视频,但就要开会员,不开的话,一天只能看一集学习视频
一起学习,一起进步!!!!!!!!!