Andriod之DatePickerDialog,禁用年份或者日期的某些按钮

原创 2013年12月01日 20:43:08

1.效果图


2.主界面,调用 MyDatePicker

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
/*1.响应开始日期设置按钮事件MainActivity.this*/
if(v == mBSDate){
    new MyDatePicker(MainActivity.this,
    new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
monthOfYear++;
String str=mETStart.getText().toString();
String fixedstr=str.substring(10);
String mMonthstr,mDaystr;
mMonthstr=""+monthOfYear;
mDaystr=""+dayOfMonth;
if(monthOfYear<10)
{
mMonthstr="0"+mMonthstr;
}
if(dayOfMonth<10)
{
mDaystr="0"+mDaystr;
}

str=year+"-"+mMonthstr+"-"+mDaystr+fixedstr;
mETStart.setText(str);
}},mCalendar.get(Calendar.YEAR),mCalendar.get(Calendar.MONTH),mCalendar.get(Calendar.DAY_OF_MONTH)
).show();
    }

}

3.定义 MyDatePicker


package com.example.parkbook;



import java.lang.reflect.Field;
import java.util.Calendar;
import java.util.Date;


import android.app.DatePickerDialog;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.DatePicker;
import android.widget.LinearLayout;


/**
* 日期选择对话框


* @author hp
*
*/
public class MyDatePicker extends DatePickerDialog {
        public MyDatePicker(Context context, OnDateSetListener callBack, int year,
                        int monthOfYear, int dayOfMonth) {
                super(context, callBack, year, monthOfYear, dayOfMonth);
            
        }
        
        public MyDatePicker(Context context, OnDateSetListener callBack, int year,
                        int monthOfYear, int dayOfMonth,int type){
                super(context, callBack, year, monthOfYear, dayOfMonth);
               
        }
        /**
         * 
         */
        @Override
        public void onDateChanged(DatePicker view, int year, int month, int day) {
        //((ViewGroup) ((ViewGroup) view.getChildAt(0)).getChildAt(0)).getChildAt(2).setEnabled(false);
                        super.onDateChanged(view, year, month, day);
              
        }


        /**
         * 更新日期对话框


         */
        @Override
        public void updateDate(int year, int monthOfYear, int dayOfMonth) {
                super.updateDate(year, monthOfYear, dayOfMonth);
        }
        @Override  
        public void show() {  
            // TODO Auto-generated method stub  
            super.show();  
             DatePicker dp = findDatePicker((ViewGroup) this.getWindow().getDecorView());  
               if (dp != null) {  
                        ((ViewGroup) ((ViewGroup) dp.getChildAt(0)).getChildAt(0)).getChildAt(2).setEnabled(false); /*j禁用年的+-按钮*/

                  //  ((ViewGroup) ((ViewGroup) dp.getChildAt(0)).getChildAt(1)).getChildAt(2).setEnabled(false); /*j禁用月的+-按钮*/
                    //((ViewGroup) ((ViewGroup) dp.getChildAt(0)).getChildAt(2)).getChildAt(2).setEnabled(false);/*j禁用日的+-按钮*/

                }   
        }  
        /** 
         * 从当前Dialog中查找DatePicker子控件 
         *  
         * @param group 
         * @return 
         */  
        private DatePicker findDatePicker(ViewGroup group) {  
            if (group != null) {  
                for (int i = 0, j = group.getChildCount(); i < j; i++) {  
                    View child = group.getChildAt(i);  
                    if (child instanceof DatePicker) {  
                        return (DatePicker) child;  
                    } else if (child instanceof ViewGroup) {  
                        DatePicker result = findDatePicker((ViewGroup) child);  
                        if (result != null)  
                            return result;  
                    }  
                }  
            }  
            return null;  
      

        }   


}

///////////////////////////////////////////////


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

jQuery-ui插件datepicker的参数使用详解

概述日期选择插件是一个配置灵活的插件,你可以定义它的展示方式,包括日期格式、语言、限制选择日期范围、添加相关按钮以及其它导航等。同时,你还可以通过键盘控制它:page up/down - 上一月、下一...

Android Java计算时间差

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try {    Date d1 = df.parse("200...

android DatePickerDialog设置日期限制

如果需要给自己的日期选择器添加一个起始日期或者结束日期的限制的话,那么搜索很容易发现 DatePicker dp; dp.setMinDate(); dp.setMaxDate(); 然而...

Jquery UI的日历控件datepicker限制日期

JQuery.ui.Datepicker是一个很强大的日期选择控件,定制性很强。朱最近在做一个旅馆预订的小功能,要求用户在填写订单选择入住日期时,要将已经被预订出的日期置为不可用,查些资料,看看JS,...

在android中用TimePicker和DatePicker或者TimePickerDialog和DatePickerDialog来动态调整时间和日期

首先是用TimePicker和DatePicker来实现动态调整时间和日期,举例如下: import java.util.Calendar; import android.app.Activity...

sql server 怎么计算年份,SQL Server各种日期计算方法

1.上个月的最后一天                    这是一个计算上个月最后一天的例子。它通过从一个月的最后一天这个例子上减去3毫秒...

DatePickerDialog日期的使用

  • 2015-09-13 21:54
  • 5.29MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)