前言

这里我们实现一个功能,点击日期输入框(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

更多相关文章

  1. Android(安卓)Widget实例日期和计时器
  2. Android中文API——DatePicker&TimePicker
  3. Android高仿微信相册选择器 多图片选择器、拍照
  4. Android的Button属性使用
  5. Android(安卓)Butterknife(黄油刀) 使用方法总结
  6. Android(安卓)源码分析ANR
  7. Android测试之Monkey原理及源码分析(一)
  8. android中的事件类型分为按键事件和屏幕触摸事件
  9. Android使用GridView实现日历功能(详细代码)

随机推荐

  1. Error: Failed to find 'ANDROID_HOME' e
  2. Android中的onCreateOptionsMenu()方法和on
  3. 升级到 Android Studio 3.0 + Gradle 4.1
  4. 【android】RxJava原理简述
  5. so文件静态分析&&Android录屏技术
  6. Android MMS模块数据存取
  7. android ListView 使用
  8. 时间选择器和日期选择器
  9. ueventd.rc 处理硬件设备权限和android i
  10. Android 获取联系人姓名与电话号码