效果
核心代码
>方法
/** * @description 选择日期d出框 * @param Listener 选择日期确定后执行的接口 * curDate 当前显示的日期 * @return * @author wqy * @time 2020-1-6 14:23 */ public voID showDatePickDialog(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(new DatePickerDialog.OnDateSetListener() { @OverrIDe voID onDateSet(DatePicker datePicker,int year,1)">int month,1)">int
day) { etDate.setText(year + "-" + (month + 1) + "-" + day); } },etDate.getText().toString());
说明:etDate为一个输入框EditText 显示当wujiaox前选择的日期,也可使用 TextVIEw 。
⭐使用EditText 时需注意:将EditText touch 时d出输入框的效果禁用掉,所以尽量使用 ontouch 来实现d出,不用 onClick 事件
@OverrIDe boolean ontouch(VIEw vIEw,MotionEvent motionEvent) { if (motionEvent.getAction()==MotionEvent.ACTION_DOWN){ hIDeinput();//隐藏输入框 switch (vIEw.getID()) { case R.ID.etDate: showDatePickDialog( DatePickerDialog.OnDateSetListener() { @OverrIDe day) { 选择日期过后执行的事件 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); } }
总结 以上是内存溢出为你收集整理的Android 日期选择框 简洁常用全部内容,希望文章能够帮你解决Android 日期选择框 简洁常用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)