关闭

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

标签: datepickerandriod
2504人阅读 评论(0) 收藏 举报
分类:

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;  
      

        }   


}

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


0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:125865次
    • 积分:1559
    • 等级:
    • 排名:千里之外
    • 原创:47篇
    • 转载:11篇
    • 译文:0篇
    • 评论:24条
    最新评论