web-dev-qa-db-fra.com

Datepicker: comment faire apparaître le datepicker lorsque vous cliquez sur le bouton et stockez la valeur dans une variable

Je souhaite afficher la fenêtre contextuelle de datepicker. J'ai trouvé quelques exemples mais je ne les reçois pas correctement. J'ai un bouton et je veux que lorsque je clique sur le bouton, la boîte de dialogue de sélection de date devrait apparaître et après avoir réglé la date, la date devrait être stockée dans une variable. Veuillez me fournir un exemple de code ou de bons liens.

20
Ashish Patil

Faites de cette classe la classe intérieure de votre activité

si vous souhaitez définir la date actuelle comme la date que vous voyez lorsque vous ouvrez votre datePicker. Vous pouvez l'obtenir comme ça

Calendar c = Calendar.getInstance();
int startYear = c.get(Calendar.YEAR);
int startMonth = c.get(Calendar.MONTH);
int startDay = c.get(Calendar.DAY_OF_MONTH);

class StartDatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener{
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        // Use the current date as the default date in the picker
        DatePickerDialog dialog = new DatePickerDialog(BookingFormActivity.this, this, startYear, startMonth, startDay);
 return dialog;

    }
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        // TODO Auto-generated method stub
        // Do something with the date chosen by the user
        startYear = year;
        startMonth = monthOfYear;
        startDay = dayOfMonth;
        updateStartDateDisplay();


    }
    } 

vous pouvez appeler cette boîte de dialogue en définissant cette méthode sur onClick

  public void showStartDateDialog(View v){
    DialogFragment dialogFragment = new StartDatePicker();
    dialogFragment.show(getFragmentManager(), "start_date_picker");
    }
13
Ravi

Essaye ça.

Utilisez ce code dans votre clic de bouton. La boîte de dialogue du sélecteur de date s'affiche.

            Calendar c = Calendar.getInstance();
    int mYear = c.get(Calendar.YEAR);
    int mMonth = c.get(Calendar.MONTH);
    int mDay = c.get(Calendar.DAY_OF_MONTH);
    System.out.println("the selected " + mDay);
    DatePickerDialog dialog = new DatePickerDialog(Registration.this,
            new mDateSetListener(), mYear, mMonth, mDay);
    dialog.show();

Ensuite, la classe mDateSetListener doit être écrite.

class mDateSetListener implements DatePickerDialog.OnDateSetListener {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            // TODO Auto-generated method stub
            // getCalender();
            int mYear = year;
            int mMonth = monthOfYear;
            int mDay = dayOfMonth;
            v.setText(new StringBuilder()
                    // Month is 0 based so add 1
                    .append(mMonth + 1).append("/").append(mDay).append("/")
                    .append(mYear).append(" "));
            System.out.println(v.getText().toString());


        }
    }

Veuillez vérifier cette réponse et voter.

36
Gowri