
我已经创建了一个对话框,里面我现在分别显示日期和时间选择器,我想设置日期选择器的最小和最大限制.
例如,一个人不应该从今天开始选择前一个日期,也不能超过一个月.
这是我的代码
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); final DatePicker picker = new DatePicker(getActivity()); try { FIEld f[] = picker.getClass().getDeclaredFIElds(); for (FIEld fIEld : f) { if (fIEld.getname().equals("mYearPicker") || fIEld.getname().equals("mYearSpinner")) { fIEld.setAccessible(true); Object yearPicker = new Object(); yearPicker = fIEld.get(picker); ((VIEw) yearPicker).setVisibility(VIEw.GONE); } } } catch (Exception ex) { ex.printstacktrace(); } picker.setCalendarVIEwShown(false); picker.setMinDate(new Date().getTime()); builder.setTitle("Please select date on which you would be leaving :") .setVIEw(picker) .setPositivebutton("OK",new DialogInterface.OnClickListener() { public voID onClick(DialogInterface dialog,int whichbutton) { SimpleDateFormat parseFormat = new SimpleDateFormat("EEE dd MMM"); Date date1 = new Date(); date1.setDate(picker.getDayOfMonth()); date1.setMonth(picker.getMonth()); final String s = parseFormat.format(date1); Log.e("DATE",s); SimpleDateFormat sdf=new SimpleDateFormat("MM-dd-yyyy"); Date date2=new Date(); date2.setDate(picker.getDayOfMonth()); date2.setMonth(picker.getMonth()); final String s2=sdf.format(date2); //Time picker AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); final TimePicker picker = new TimePicker(getActivity()); picker.setIs24HourVIEw(true); builder.setTitle("Please select time at which you would be leaving :") .setVIEw(picker) .setPositivebutton("OK",new DialogInterface.OnClickListener() { public voID onClick(DialogInterface dialog,int whichbutton) { int hour = picker.getCurrentHour(); int minute = picker.getCurrentMinute(); leaving.setTextSize(14); leaving.setText(s + " " + hour + ":" + minute); inTime=s2+" "+hour+":"+minute; Log.e("inTime ",inTime); } }) .setNegativebutton("Cancel",new DialogInterface.OnClickListener() { public voID onClick(DialogInterface dialog,int whichbutton) { leaving.setText(""); inTime=""; dialog.dismiss(); } }).create().show(); //Time picker } } ) .setNegativebutton("Cancel",int whichbutton) { leaving.setText(""); inTime=""; dialog.dismiss(); } } ) .create().show(); 请帮忙.谢谢
解决方法 试试这个,这从今天到datepicker对话框中的下一个5年日期显示.public class MainActivity extends Activity { TextVIEw txtDatePicker; Calendar cal,cal1; long maxDate; Date date; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); cal = Calendar.getInstance(); cal1 = Calendar.getInstance(); txtDatePicker = (TextVIEw) findVIEwByID(R.ID.txtDatePicker); txtDatePicker.setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw arg0) { // Todo auto-generated method stub DatePickerDialog dialog = new DatePickerDialog(MainActivity.this,new OnDateSetListener() { @OverrIDe public voID onDateSet(DatePicker arg0,int arg1,int arg2,int arg3) { // Todo auto-generated method stub Toast.makeText(MainActivity.this,""+arg1+"/"+(arg2+1)+"/"+arg3,Toast.LENGTH_SHORT).show(); } },cal.get(Calendar.YEAR),cal.get(Calendar.MONTH),cal.get(Calendar.DAY_OF_MONTH)); dialog.getDatePicker().setMinDate(System.currentTimeMillis()); cal1.add(Calendar.YEAR,5); dialog.getDatePicker().setMaxDate(cal1.getTimeInMillis()); dialog.show(); } }); }} 总结 以上是内存溢出为你收集整理的如何在android中设置日期选择器的最小和最大限制?全部内容,希望文章能够帮你解决如何在android中设置日期选择器的最小和最大限制?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)