如何设置的Max&安培;敏时间车轮的DatePicker在Android中安培、车轮、如何设置、时间

由网友(千殇月)分享简介:在我的应用程序正在试图的DatePicker 设置date.I要设置日期选择器最大日期根据系统date.i是今天的日期不知道如何设置日期选择器最大日期为今天date.May我知道什么是实现我目标的正确方法?也许这个问题太简单,但是余did't找到合适solution.Please帮我出下面是我的code: 公共类Use...

在我的应用程序正在试图的DatePicker 设置date.I要设置日期选择器最大日期根据系统date.i是今天的日期不知道如何设置日期选择器最大日期为今天date.May我知道什么是实现我目标的正确方法?也许这个问题太简单,但是余did't找到合适solution.Please帮我出

下面是我的code:

 公共类UserDob延伸活动{    TextView的tvDisplayDate;     DatePicker的datePickerBirthday;    @覆盖    保护无效的onCreate(捆绑savedInstanceState){        super.onCreate(savedInstanceState);        的setContentView(R.layout.activity_user_dob);        动作条AB = getActionBar();        ab.setDisplayUseLogoEnabled(假);        ab.setDisplayShowHomeEnabled(真);        ab.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);        ab.setCustomView(R.layout.actionbar);        ab.setDisplayHomeAsUpEnabled(真);        ColorDrawable colorDrawable =新ColorDrawable(Color.parseColor(#FFFFFF));        ab.setBackgroundDrawable(colorDrawable);        datePickerBirthday =(的DatePicker)findViewById(R.id.d presult);        tvDisplayDate =(的TextView)findViewById(R.id.textViewUserDate);         INT currentapiVersion = android.os.Build.VERSION.SDK_INT;            如果(currentapiVersion> = 11){                datePickerBirthday.setCalendarViewShown(假);            }            SimpleDateFormat的sdfDateTime =新的SimpleDateFormat(YYYY-MM-DD,Locale.US);            字符串dateStr = sdfDateTime.format(新的Date(System.currentTimeMillis的()));            串[] dateSplit = dateStr.split( - );            INT currentYear =的Integer.parseInt(dateSplit [0]);            INT currentMonth =的Integer.parseInt(dateSplit [1]);            INT CURRENTDAY =的Integer.parseInt(dateSplit [2]);            //显示一周的日期和在TextView中            setHumanReadableDate(currentYear,currentMonth,CURRENTDAY);            //初始化日期选择器监听器            // currentMonth  -  1,因为在选择器,0是一月            datePickerBirthday.init(currentYear,currentMonth  -  1,CURRENTDAY,birthdayListener);    }     //日期选择器监听器   OnDateChangedListener birthdayListener =新OnDateChangedListener(){       @覆盖       公共无效onDateChanged(DatePicker的birthDayDatePicker,               INT NEWYEAR,诠释newMonth,诠释newDay){           尝试{               // currentMonth + 1,获取适当的一个月               setHumanReadableDate(NEWYEAR,newMonth + 1,newDay);           }赶上(NullPointerException异常五){               e.printStackTrace();           }赶上(例外五){               e.printStackTrace();           }       }   };   //显示用户更好的日期格式   公共无效setHumanReadableDate(INT NEWYEAR,诠释newMonth,诠释newDay){       尝试{           串clickedDate = NEWYEAR + - + newMonth + - + newDay;           SimpleDateFormat的SDF =新的SimpleDateFormat(YYYY-MM-DD);           日期D = NULL;            尝试{                D = sdf.parse(clickedDate);            }赶上(java.text.ParseException E){                // TODO自动生成catch块                e.printStackTrace();            }           SimpleDateFormat的sdfDateTime =新的SimpleDateFormat(MMMM DD,YYYY是EEEE,Locale.US);           字符串dateStr = sdfDateTime.format(D);           tvDisplayDate.setText(dateStr);       }赶上(ParseException的E){           e.printStackTrace();       }   }} 
max 渲染的时候背景颜色总是在变 如何解决 求大神指教 急

解决方案

以上11 API对于分钟日期可以使用

 的android:MINDATE =MM / DD / YYYY或setMinDate(时间长) 

有关最大日期

 的android:MAXDATE =MM / DD / YYYY//在XMLsetMaxDate(新的Date()的getTime()); //当前时间 

In my application am trying DatePicker to set date.I want to set date picker Maximum date is as today date according to system date.i don't know how to set date picker maximum date as today date.May I know what is the correct way to achieve my objective?Maybe this question too basic, but i did't find any suitable solution.Please Help me out

Here is my code :

    public class UserDob extends Activity {

    TextView tvDisplayDate;
     DatePicker datePickerBirthday;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user_dob);

        ActionBar ab = getActionBar(); 
        ab.setDisplayUseLogoEnabled(false);
        ab.setDisplayShowHomeEnabled(true);
        ab.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
        ab.setCustomView(R.layout.actionbar);
        ab.setDisplayHomeAsUpEnabled(true);
        ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#FFFFFF"));     
        ab.setBackgroundDrawable(colorDrawable);

        datePickerBirthday=(DatePicker)findViewById(R.id.dpResult);
        tvDisplayDate = (TextView)findViewById(R.id.textViewUserDate);

         int currentapiVersion = android.os.Build.VERSION.SDK_INT;
            if (currentapiVersion >= 11) {
                datePickerBirthday.setCalendarViewShown(false);
            }

            SimpleDateFormat sdfDateTime = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
            String dateStr = sdfDateTime.format(new Date(System.currentTimeMillis()));

            String[] dateSplit = dateStr.split("-");
            int currentYear = Integer.parseInt(dateSplit[0]);
            int currentMonth = Integer.parseInt(dateSplit[1]);
            int currentDay = Integer.parseInt(dateSplit[2]);

            // to show date and day of week in the TextView
            setHumanReadableDate(currentYear, currentMonth, currentDay);

            // initialize date picker listener
            // currentMonth - 1, because on the picker, 0 is January
            datePickerBirthday.init(currentYear, currentMonth - 1, currentDay, birthdayListener);


    }
     // the date picker listener
   OnDateChangedListener birthdayListener = new OnDateChangedListener() {

       @Override
       public void onDateChanged(DatePicker birthDayDatePicker,
               int newYear, int newMonth, int newDay) {

           try{

               // currentMonth + 1, to retrieve proper month
               setHumanReadableDate(newYear, newMonth + 1, newDay);

           } catch (NullPointerException e) {
               e.printStackTrace();
           } catch (Exception e) {
               e.printStackTrace();
           }
       }
   };

   // show the user a better date format
   public void setHumanReadableDate(int newYear, int newMonth, int newDay){
       try {

           String clickedDate = newYear + "-" + newMonth + "-" + newDay;
           SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
           Date d = null;
            try {
                d = sdf.parse(clickedDate);
            } catch (java.text.ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

           SimpleDateFormat sdfDateTime = new SimpleDateFormat("MMMM dd, yyyy 'is' EEEE", Locale.US);
           String dateStr = sdfDateTime.format(d);

           tvDisplayDate.setText(dateStr);

       } catch (ParseException e) {
           e.printStackTrace();
       }
   }
}

解决方案

Above API 11 For min date you can use

android:minDate="mm/dd/yyyy"
or setMinDate(long time)

For Max date

android:maxDate="mm/dd/yyyy" // In XML
setMaxDate(new Date().getTime());// Current time

阅读全文

相关推荐

最新文章