android 实现点击输入框弹出日期选择对话框(DatePickerDialog)
16lz
2021-01-26
前言
这里我们实现一个功能,点击日期输入框(EditText),即可弹出日期选择对话框(DatePickerDialog),等用户选择日期后,将用户选择的日期显示在日期输入框。
1.activity_main.xml
这里只有一个TextView和EditText。
2.MainActivity 这是主要对EditText的onTouch事件和onFocusChange事件进行了处理。
package cn.sehzh.datepickerdlgtester;import java.util.Calendar;import android.app.Activity;import android.app.DatePickerDialog;import android.app.DatePickerDialog.OnDateSetListener;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.View.OnFocusChangeListener;import android.view.View.OnTouchListener;import android.widget.DatePicker;import android.widget.EditText;public class MainActivity extends Activity {private EditText mEditText;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mEditText = (EditText) findViewById(R.id.editText1);mEditText.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {if (event.getAction() == MotionEvent.ACTION_DOWN) {showDatePickDlg();return true;}return false;}});mEditText.setOnFocusChangeListener(new OnFocusChangeListener() {@Overridepublic void onFocusChange(View v, boolean hasFocus) {if (hasFocus) {showDatePickDlg();}}});}protected void showDatePickDlg() {Calendar calendar = Calendar.getInstance();DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this, new OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {MainActivity.this.mEditText.setText(year + "-" + monthOfYear + "-" + dayOfMonth);}}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));datePickerDialog.show();}}
3.实现效果 注意:这里的月份是从0开始的。
源码下载地址:DatePickerDialog
更多相关文章
- Android(安卓)Widget实例日期和计时器
- Android中文API——DatePicker&TimePicker
- Android高仿微信相册选择器 多图片选择器、拍照
- Android的Button属性使用
- Android(安卓)Butterknife(黄油刀) 使用方法总结
- Android(安卓)源码分析ANR
- Android测试之Monkey原理及源码分析(一)
- android中的事件类型分为按键事件和屏幕触摸事件
- Android使用GridView实现日历功能(详细代码)