DatePicker和TimePicker使用

系统 1520 0

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

     要实现功能如下:

    

 左右两个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;
	}
  

 

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


DatePicker和TimePicker使用
 我就喜欢看有图有代码的,简单明了。嘿嘿

 

DatePicker和TimePicker使用


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论