我们从网上一搜DatePickerDialog相关实现,大多都是默认的形式,也就是不带取消按钮。下边上我的代码:我将代码简单的封装到一个工具类里边

public static DatePickerDialog showDateDialog(Context ctx, final EditText editText)//editText是我们要显示选择日期值
{ Calendar c = Calendar.getInstance();//获取当前日期
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
final DatePickerDialog datePickerDialog = new DatePickerDialog(ctx,null,year,month,day); datePickerDialog.setButton(DialogInterface.BUTTON_POSITIVE, "完成", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { DatePicker datePicker = datePickerDialog.getDatePicker(); int year = datePicker.getYear(); int month = datePicker.getMonth(); int day = datePicker.getDayOfMonth(); StringBuilder monthBuilder = new StringBuilder();
if (month + 1 < 10) {
monthBuilder.append("0");
}
monthBuilder.append(month + 1); StringBuilder dayBuilder = new StringBuilder();
if (day < 10) {
dayBuilder.append("0");
}
dayBuilder.append(day); editText.setText(year + "-" + monthBuilder.toString() + "-" + dayBuilder.toString());//点击完成将处理好的日期值写到edittext上
}
});
datePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
datePickerDialog.cancel();
}
});
datePickerDialog.getDatePicker().setCalendarViewShown(false);
return datePickerDialog;
}

我们通过setButton在dialog中加入取消按钮,并作简单的实现。

在我们选择完日期后,当我们再次打开toucher的时候,应该在日期控件中显示为选择后的时间:看代码

public static DatePickerDialog showDateDialog(Context ctx, final EditText editText)
{
int year = 0;
int month = 0;
int day = 0;

     //首次打开
if(editText.getText().toString().length()==0) {
Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
}else{//有值的情况下
String currDate = editText.getText().toString();
year = Integer.valueOf(currDate.split("-")[0].toString());
month = Integer.valueOf(currDate.split("-")[1].toString())-1;
day = Integer.valueOf(currDate.split("-")[2].toString());
} final DatePickerDialog datePickerDialog = new DatePickerDialog(ctx,null,year,month,day); datePickerDialog.setButton(DialogInterface.BUTTON_POSITIVE, "完成", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { DatePicker datePicker = datePickerDialog.getDatePicker(); int year = datePicker.getYear(); int month = datePicker.getMonth(); int day = datePicker.getDayOfMonth(); StringBuilder monthBuilder = new StringBuilder();
if (month + 1 < 10) {
monthBuilder.append("0");
}
monthBuilder.append(month + 1); StringBuilder dayBuilder = new StringBuilder();
if (day < 10) {
dayBuilder.append("0");
}
dayBuilder.append(day); editText.setText(year + "-" + monthBuilder.toString() + "-" + dayBuilder.toString());
}
});
datePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
datePickerDialog.cancel();
}
});
datePickerDialog.getDatePicker().setCalendarViewShown(false);
return datePickerDialog;
}

调用方式示例:

 conditionEdit.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if(dialog!=null && dialog.isShowing()){
return true;
}
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN)
{
conditionEdit.clearFocus();
conditionEdit.requestFocus();
}
if (motionEvent.getAction() == MotionEvent.ACTION_UP)
{
dialog = Dialog.showDateDialog(ReservationActivity.this, conditionEdit);
dialog.show();
}
return false;
}
});

android DatePickerDialog配合edittext实现按日期查询的更多相关文章

  1. Android开发UI之EditText+DatePicker带日期选择器的编辑框

    1. 声明EditText变量,并关联到相应控件上 private EditText sellStartTime; private EditText sellEndTime; sellStartTim ...

  2. Android DatepickerDialog(日期选择器)的使用

    效果图如下: 日期和时间选择对话框,首先是要获得当前时间,这里用 java类中的Calendar来获得日期和时间(也可以用Date,但是不提倡,Date部分方法已经注释为过时), Calendar是一 ...

  3. Android Studio 之 EditText

    EditText 简介 •简介 EditText是一个非常重要的组件,可以说它是用户和Android应用进行数据传输窗户: 有了它就等于有了一扇和Android应用传输的门,通过它用户可以把数据传给A ...

  4. SQLServer根据日期查询星期

    --根据日期查询星期SELECT SYSDATETIME();select datepart(weekday,getdate()); SET DATEFIRST 1select '星期'+case w ...

  5. Android开发之EditText属性详解

    1.EditText输入的文字为密码形式的设置 (1)通过.xml里设置: 把该EditText设为:android:password="true" // 以”.”形式显示文本 ( ...

  6. Android 自定义android控件EditText边框背景

    在我们进行Android应用界面设计和时候,为了界面风格的统一,我们需要对一些控件进行自定义.比如我们的应用采用的蓝色风格,但是 android的EditText控制获得焦点后显示的却是黄色的边框背景 ...

  7. Android中的EditText默认时不弹出软键盘的方法

    方法一: 在 AndroidMainfest.xml中选择哪个activity,设置windowSoftInputMode属性为 adjustUnspecified|stateHidden <a ...

  8. Android中使EditText失去焦点,edittext禁止弹出键盘[转]

    转自http://www.cnblogs.com/yejiurui/archive/2013/01/02/2841945.html 在我们的应用中,有时候一进入一个页面, EditText默认就会自动 ...

  9. android代码集EditText只要输入号码、信

     如何设置EditText,因此,只有某些数字或字母可以进入它? 一.建立EditText,只要输入号码: 办法1:直接生成DigitsKeyListener了. et_1.setKeyListe ...

随机推荐

  1. android 通过代码设置drawableLeft

    /** * * @desc 设置左边图标 * @param @param drw * @return void */ public void setAlertLeftIcon(Drawable drw ...

  2. 四句话表明JSON格式定义

    (1):并列的数据之间使用逗号(",")分割: (2):键值对的映射用冒号(":")表示: (3):并列数据的集合(数组)用方括号("[]" ...

  3. SQL viewId 比较好看的 Id

    有时候我们希望 Id 要好看一些,比如 Id=1 -> Id=T000001 refer : http://www.kodyaz.com/t-sql/custom-sequence-string ...

  4. c++(smart pointer)

    (一)首先对智能指针有一些概念性的了解 **********本部分内容摘自开源中国社区http://my.oschina.net/u/158589/blog/28994******** 1.什么是智能 ...

  5. 9.21 investments - chapter 4 - Summary

    转载请注明来自souldak,微博:@evagle MUTUAL FUNDS AND OTHER INVESTMENT COMPANIES KEYWORDS: investment company n ...

  6. 牛逼的 弹出层 layer !!!

    功能强大,实用,操作方便,文档齐全. http://layer.layui.com/api.html 常用功能代码: <!doctype html> <html> <he ...

  7. HDU-3787(字符串模拟)

    Problem Description 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开.现在请计算A+B的结果,并以正常形式输出.   Input 输入包含 ...

  8. 40 个重要的 HTML5 面试问题及答案

    本文将列出40个重要的HTML 5面试问题及答案,祝各位求职顺利. 目录 介绍 Canvas和SVG图形之间的区别是什么? 如何使用Canvas和SVG绘制矩形? 什么是CSS选择器? 如何使用ID值 ...

  9. android 初学: 提示No Launcher activity found!

    提示No Launcher activity found! 三步检查: 1 必须有 <category android:name="android.intent.category.LA ...

  10. iOS UITableView 修改滚动条颜色 默认选中第一条

    //隐藏 self.tableView.showsVerticalScrollIndicator = NO; //修改颜色 self.tableView.indicatorStyle=UIScroll ...