/*** @description 选择日期弹出框
*@paramlistener 选择日期确定后执行的接口
*curDate 当前显示的日期
*@return*@authorwqy
* @time -1-6 14:23*/
public voidshowDatePickDialog(DatePickerDialog.OnDateSetListener listener,String curDate) {
Calendar calendar=Calendar.getInstance();int year = 0,month = 0,day = 0;try{
year=Integer.parseInt(curDate.substring(0,curDate.indexOf("-"))) ;
month=Integer.parseInt(curDate.substring(curDate.indexOf("-")+1,curDate.lastIndexOf("-")))-1;
day=Integer.parseInt(curDate.substring(curDate.lastIndexOf("-")+1,curDate.length())) ;
}catch(Exception e) {
e.printStackTrace();
year=calendar.get(Calendar.YEAR);
month=calendar.get(Calendar.MONTH);
day=calendar.get(Calendar.DAY_OF_MONTH);
}
DatePickerDialog datePickerDialog= new DatePickerDialog(this
showDatePickDialog(newDatePickerDialog.OnDateSetListener() {
@Overridevoid onDateSet(DatePicker datePicker,int year,1)">int month,1)">intday) {
etDate.setText(year+ "-" + (month + 1) + "-" +day);
}
},etDate.getText().toString());
说明:etDate为一个输入框EditText 显示当wujiaox前选择的日期,也可使用 TextView 。
⭐使用EditText 时需注意:将EditText Touch 时弹出输入框的效果禁用掉,所以尽量使用 onTouch 来实现弹出,不用 onClick 事件
@OverridebooleanonTouch(View view,MotionEvent motionEvent) {if (motionEvent.getAction()==MotionEvent.ACTION_DOWN){
hideInput();//隐藏输入框
switch(view.getId()) {caseR.id.etDate:
showDatePickDialog(DatePickerDialog.OnDateSetListener() {
@Overrideday) {选择日期过后执行的事件
etDate.setText(year + "-" + (month + 1) + "-" +day);
}
},etDate.getText().toString());break;
}
}return false;
}
>hideInput方法 有可能不是当前输入框调出的输入框,在点击之前有输入框也要隐藏掉
* 隐藏键盘protected hideInput() {
InputMethodManager imm=(InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
View v=getWindow().peekDecorView();if (null !=v) {
imm.hideSoftInputFromWindow(v.getWindowToken(),0);
}
}
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!