Comment désactiver les dates futures dans le sélectionneur de date Android

Comment désactiver les dates futures dans le sélectionneur de date Android

Code Java:

  • Différence entre res / color et res / values ​​/ colors.xml dans le dossier de ressources Android
  • Aucun identifiant de ressource trouvé pour l'application: layout_scrollflags de CollapsingToolbarLayout
  • Ajouter des lignes de table dynamiquement dans Android
  • Lequel est le meilleur pour calculer la distance entre deux points?
  • Impossible de remplacer la méthode onPostExecute () dans AsyncTask Class ou de la déclencher
  • Android AppWidget TextView: Comment définir la couleur d'arrière-plan au moment de l'exécution
  • mExpireDate.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // To show current date in the datepicker final Calendar mcurrentDate = Calendar.getInstance(); int mYear = mcurrentDate.get(Calendar.YEAR); int mMonth = mcurrentDate.get(Calendar.MONTH); int mDay = mcurrentDate.get(Calendar.DAY_OF_MONTH); DatePickerDialog mDatePicker = new DatePickerDialog( EventRegisterActivity.this, new OnDateSetListener() { public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) { mcurrentDate.set(Calendar.YEAR, selectedyear); mcurrentDate.set(Calendar.MONTH, selectedmonth); mcurrentDate.set(Calendar.DAY_OF_MONTH, selectedday); SimpleDateFormat sdf = new SimpleDateFormat( getResources().getString( R.string.date_card_formate), Locale.US); mExpireDate.setText(sdf.format(mcurrentDate .getTime())); } }, mYear, mMonth, mDay); mDatePicker.setTitle(getResources().getString( R.string.alert_date_select)); mDatePicker.show(); } }); 

    Aidez-vous à le faire?

  • Comment annuler la sélection de texte par défaut de l'application Android Web 4.1 OS?
  • SimpleDateFormat bug de fuseau horaire sur Android
  • Conversion de l'emplacement tactile de la vue sur l'emplacement de l'écran HTML WebView
  • Comment faire pour compter les éléments de listes de Listview?
  • Méthode d'invocation d'une erreur élevée dans Android Studio
  • L'ajout par programmation de TableRow à TableLayout ne fonctionne pas
  • 5 Solutions collect form web for “Comment désactiver les dates futures dans le sélectionneur de date Android”

    Obtenez le DatePicker de DatePickerDialog avec getDatePicker() . Définissez la date maximale à la date actuelle avec setMaxDate() :

     mDatePicker.getDatePicker().setMaxDate(System.currentTimeMillis()); 

    Nécessite le niveau API 11.

    Vous pouvez appeler getDatePicker (). SetMaxDate (long) sur votre DatePickerDialog pour définir aujourd'hui votre date maximale. Vous pouvez mettre à jour la fonction avec le même nom à partir de l'extrait que vous avez posté.

    Remarque :: DatePickerDialog est l'objet que j'ai référé dans les documents Android à partir du lien que j'ai publié.

     @Override protected Dialog onCreateDialog(int id) { Calendar c = Calendar.getInstance(); int cyear = c.get(Calendar.YEAR); int cmonth = c.get(Calendar.MONTH); int cday = c.get(Calendar.DAY_OF_MONTH); switch (id) { case DATE_DIALOG_ID: //start changes... DatePickerDialog dialog = new DatePickerDialog(this, mDateSetListener, cyear, cmonth, cday); dialog.getDatePicker().setMaxDate(System.currentTimeMillis()); return dialog; //end changes... } return null; } 

    Essayez ceci et donnez votre avis!

    Si l'utilisateur sélectionne la date future, mettez le datepicker à la date actuelle (aujourd'hui)

    Vous pouvez utiliser le code suivant pour vérifier que la date sélectionnée est sélectionnée ou non

     final Calendar cal = Calendar.getInstance(); datePickerDob.init(currentYear, currentMonth, currentDay, new OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { Calendar selectedCal = Calendar.getInstance(); selectedCal.set(year, monthOfYear, dayOfMonth); long selectedMilli = selectedCal.getTimeInMillis(); Date datePickerDate = new Date(selectedMilli); if (datePickerDate.after(new Date())) { datePickerDob.updateDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)); } else { } } }); 

    Vous pouvez également utiliser la méthode compareTo ()

     datePickerDate.compareTo(new Date()); 

    Comparez le récepteur à la Date spécifiée pour déterminer l'ordre relatif.

    Les paramètres datent d'une Date à comparer contre.

    Renvoie un int <0 si cette Date est inférieure à la Date spécifiée, 0 s'ils sont égaux et un int> 0 si cette Date est supérieure.

     @Override public Dialog onCreateDialog(Bundle savedInstanceState) { DatePickerDialog dialog = new DatePickerDialog(getActivity(), ondateSet, year, month, day); Calendar c = Calendar.getInstance(); c.add(Calendar.DATE, 1); Date newDate = c.getTime(); dialog.getDatePicker().setMaxDate(newDate.getTime() - (newDate.getTime() % (24 * 60 * 60 * 1000))); return dialog; } 
     **new Way** ed_date.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Calendar mcurrentDate=Calendar.getInstance(); year=mcurrentDate.get(Calendar.YEAR); month=mcurrentDate.get(Calendar.MONTH); day=mcurrentDate.get(Calendar.DAY_OF_MONTH); final DatePickerDialog mDatePicker =new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) { ed_date.setText(new StringBuilder().append(year).append("-").append(month+1).append("-").append(day)); int month_k=selectedmonth+1; } },year, month, day); mDatePicker.setTitle("Please select date"); // TODO Hide Future Date Here mDatePicker.getDatePicker().setMaxDate(System.currentTimeMillis()); // TODO Hide Past Date Here // mDatePicker.getDatePicker().setMinDate(System.currentTimeMillis()); mDatePicker.show(); } }); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.