DatePicker和TimePicker使用

     发现有时候,不会的先去网上搜,网上再不满意那就看文档。很能解决问题的一个办法。哈哈 也许你们早就发现了吧。

     要实现功能如下:

    

 左右两个EditText,均显示当前时间,当点击某一个时,出现日期或者时间控件,可以对其进行修改。前提是不用xml写。

 上代码吧 (*^__^*) 嘻嘻

// 用来保存年月日:
	private int mYear;
	private int mMonth;
	private int mDay;
	// 声明一个独一无二的标识,来作为要显示DatePicker的Dialog的ID:
	static final int DATE_DIALOG_ID = 0;
//用来保存时间:
                private int mHour;
	private int mMinute;
	static final int TIME_DIALOG_ID = 1;

 

 /**
         * 设置当前时间和日期
         */
      EditText  date=(EditText)layout.findViewById(R.id.date);
              date.setInputType(InputType.TYPE_NULL);//关闭软键盘
        
        
      EditText  time=(EditText)layout.findViewById(R.id.time);
            time.setInputType(InputType.TYPE_NULL);//关闭软键盘
        //添加监听
        date.setOnClickListener(new dateListener());
            time.setOnClickListener(new timeListener());

 

/**
	 * 实现当前时间的选择和获取
	 * 监听类
	 * 
	 */
		
	class timeListener implements View.OnClickListener{
		@Override
		public void onClick(View v) {
			 // get the current time       
			final Calendar c = Calendar.getInstance(); 
			mHour = c.get(Calendar.HOUR_OF_DAY);   
			mMinute = c.get(Calendar.MINUTE);      
			// display the current date      
			time.setText( new StringBuilder().append(pad(mHour)).append(":")
					.append(pad(mMinute)));
			
			 showDialog(TIME_DIALOG_ID);
		}
		
	}
	

	private static String pad(int c) {
		if (c >= 10)
			return String.valueOf(c);
		else
			return "0" + String.valueOf(c);
	}
	
	// // 需要定义弹出的TimePicker对话框的事件监听器:
	private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
		public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
			mHour = hourOfDay;
			mMinute = minute;
			time.setText( new StringBuilder().append(pad(mHour)).append(":")
					.append(pad(mMinute)));
		}
	};
	
	
	/**
	 * 实现当前日期的选择和获取
	 * 
	 * 监听类
	 */
	class dateListener implements View.OnClickListener {
		@Override
		public void onClick(View v) {
			// 获得当前的日期:
			Calendar currentDate = Calendar.getInstance();
			mYear = currentDate.get(Calendar.YEAR);
			mMonth = currentDate.get(Calendar.MONTH);
			mDay = currentDate.get(Calendar.DAY_OF_MONTH);
			/*// 设置文本的内容:
			date.setText(new StringBuilder().append(mYear).append("-")
					.append(mMonth + 1).append("-")// 得到的月份+1,因为从0开始
					.append(mDay));*/
			showDialog(DATE_DIALOG_ID);
		}
	}
	// 需要定义弹出的DatePicker对话框的事件监听器:
	private DatePickerDialog.OnDateSetListener mDateSetListener = new OnDateSetListener() {
		public void onDateSet(DatePicker view, int year, int monthOfYear,
				int dayOfMonth) {
			mYear = year;
			mMonth = monthOfYear;
			mDay = dayOfMonth;
			// 设置文本的内容:
			date.setText(new StringBuilder().append(mYear).append("-")
					.append(mMonth + 1).append("-")// 得到的月份+1,因为从0开始
					.append(mDay));
		}
	};

	// 当Activity调用showDialog函数时会触发该函数的调用: 66. */
	protected Dialog onCreateDialog(int id) {
		switch (id) {
		case DATE_DIALOG_ID:
			return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,mDay);
		case TIME_DIALOG_ID:
			return new TimePickerDialog(this, mTimeSetListener, mHour, mMinute,
					false);
		}
		return null;
	}

 

点击时间时,运行效果如下:



 我就喜欢看有图有代码的,简单明了。嘿嘿

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值