0

I have a dialog popup,

           button1.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View view){
                final Dialog dialog = new Dialog(TravellerDetailsActivity.this);

                dialog.setContentView(R.layout.custom_dialog1);
                dialog.setTitle("Traveler Name");
                final RadioGroup manRadioGroup = (RadioGroup) dialog.findViewById(R.id.manRadioGroup1);
                final EditText firstName = (EditText) dialog.findViewById(R.id.editText3);
                final EditText middleName = (EditText) dialog.findViewById(R.id.editText4);
                final EditText lastName = (EditText) dialog.findViewById(R.id.editText5);
                final EditText age = (EditText) dialog.findViewById(R.id.editText6);
                Button btnSave          = (Button) dialog.findViewById(R.id.save);

                btnSave.setOnClickListener(new View.OnClickListener(){
                                               @Override
                                               public void onClick(View view) {

                                                   if(firstName.getText().toString().equals("")) {
                                                       firstName.setError("Enter first name");
                                                       return;
                                                   }
                                                   if(lastName.getText().toString().equals("")) {
                                                       lastName.setError("Enter last name");
                                                       return;
                                                   }

                                                   if(age.getText().toString().equals("")){
                                                       age.setError("Enter age ");
                                                   }

                                                   if (manRadioGroup.getCheckedRadioButtonId() == -1)
                                                   {
                                                       Toast.makeText(TravellerDetailsActivity.this, "Please select title (Mr. or Mrs or Miss) ", Toast.LENGTH_LONG).show();
                                                       return;
                                                   }

                                                   RadioButton radioButton = (RadioButton) dialog.findViewById(manRadioGroup.getCheckedRadioButtonId());

                                                   et.setText(radioButton.getText().toString()+" "+firstName.getText().toString()+" "+middleName.getText().toString()+" "+lastName.getText().toString());

                                                   Guest guest = new Guest();

                                                   Passengers passengers = new Passengers();
                                                   passengers.setTitle(radioButton.getText().toString());
                                                   passengers.setFirstName(firstName.getText().toString());
                                                   passengers.setLastName(lastName.getText().toString());
                                                   passengers.setIsLeadPax("false");
                                                   passengers.setAge(age.getText().toString());
                                                   passengers.setPaxType("1");
                                                   if(radioButton.getText().toString().equals("Master."))
                                                      passengers.setGender("1");
                                                   else
                                                      passengers.setGender("2");

                                                   passengers.setDateOfBirth("08-04-1993");
                                                   passengers.setFFAirline("");
                                                   passengers.setFFNumber("");
                                                   passengers.setCountryCode(getUserCountry(TravellerDetailsActivity.this));
                                                   passengers.setContactNo(mobile.getText().toString());
                                                   passengers.setAddressLine1("kk nagar");
                                                   passengers.setCity("madurai");
                                                   passengers.setCountryName("India");

                                                   Fare fare = new Fare();
                                                   fare.setBaseFare(1950);
                                                   fare.setTax(440);
                                                   fare.setYQTax(0);
                                                   fare.setAdditionalTxnFeeOfrd(0);
                                                   fare.setAdditionalTxnFeePub(0);
                                                   fare.setPGCharge(0);

                                                   Seat seat = new Seat();
                                                   seat.setCode("");
                                                   seat.setDescription("");

                                                   Meal meal = new Meal();
                                                   meal.setCode("");
                                                   meal.setDescription("");

                                                   guest.setPassengers(passengers);
                                                   guest.setFare(fare);
                                                   guest.setMeal(meal);
                                                   guest.setSeat(seat);

                                                   guests.add(guest);



                                                   dialog.dismiss();
                                               }
                                           }
                );
                Button btnCancel        = (Button) dialog.findViewById(R.id.cancel);
                btnCancel.setOnClickListener(new View.OnClickListener(){
                                                 @Override
                                                 public void onClick(View view) {
                                                     dialog.dismiss();
                                                 }
                                             }
                );
                dialog.show();
            }
        });

I need to show this date picker dialog within my popup. This popup have validations for fields. Is it possible to add date picker here? How will I implement the interface implements DatePickerDialog.OnDateSetListener in a Dialog popup screen.

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Sudhakar
  • 57
  • 2
  • 11
  • Yes you can open a date picker from a alertdialog pop up on which field of your popup you want to open date picker – Sandeep dhiman May 19 '17 at 07:20
  • did you try anything to show `DatePickerDialog`...if so show some code and tell where you stuck.?? – ELITE May 19 '17 at 07:32
  • I'm getting exception.java.lang.NullPointerException at com.flyonfly.fmapp.TravellerDetailsActivity.onDateSet(TravellerDetailsActivity.java:753) – Sudhakar May 19 '17 at 07:44
  • check on stackoverflow for what is `java.lang.NullPointerException`?? – ELITE May 19 '17 at 07:44
  • Check [This Answer](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) – ELITE May 19 '17 at 07:46

3 Answers3

0

Make your editText global for which you want to open the DatePicker dialog.

age = (EditText) dialog.findViewById(R.id.editText6);

Where age is declared in Activity or Fragment.

Now in setOnClickListener, you can open the DatePicker normally.

schinj
  • 794
  • 4
  • 19
  • What happens if dialog is dynamic. Meaning I need to set different dialog contents within the for loop?. – Sudhakar May 19 '17 at 07:39
  • java.lang.NullPointerException at com.flyonfly.fmapp.TravellerDetailsActivity.onDateSet(TravellerDetailsActivity.java:753) at com.wdullaer.materialdatetimepicker.date.DatePickerDialog.notifyOnDateListener(DatePickerDialog.java:982) – Sudhakar May 19 '17 at 07:46
  • Do you have the reference of your dialog. Because you would need that to set the selected date in your dialog. – schinj May 19 '17 at 07:50
0
    dialog = new Dialog(TravellerDetailsActivity.this);
    dialog.setContentView(R.layout.custom_dialog);

    dob = (EditText) dialog.findViewById(R.id.editText7);

    dob.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            vv = v;
            Calendar now = Calendar.getInstance();
            DatePickerDialog dpd = DatePickerDialog.newInstance(
                    TravellerDetailsActivity.this,
                    now.get(Calendar.YEAR),
                    now.get(Calendar.MONTH),
                    now.get(Calendar.DAY_OF_MONTH)
            );
            dpd.show(TravellerDetailsActivity.this.getFragmentManager(), "Datepickerdialog");

        }
    });

@Override
public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
    String date = year + "-" + (++monthOfYear) + "-" + dayOfMonth;
    dob.setText(date);
}
Sudhakar
  • 57
  • 2
  • 11
0

use this code when u open datepicker , suppose button on dialog on click get open datepicker check out below code.

    button1.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View view){
            final Dialog dialog = new Dialog(TravellerDetailsActivity.this);

            dialog.setContentView(R.layout.custom_dialog1);
            dialog.setTitle("Traveler Name");
            final RadioGroup manRadioG

roup = (RadioGroup) dialog.findViewById(R.id.manRadioGroup1);
        final EditText firstName = (EditText) dialog.findViewById(R.id.editText3);
        final EditText middleName = (EditText) dialog.findViewById(R.id.editText4);
        final EditText lastName = (EditText) dialog.findViewById(R.id.editText5);
        final EditText age = (EditText) dialog.findViewById(R.id.editText6);
        final Button btnDatePicker = (Button)dialog.findViewById(R.id.btnDatePocker); 
        Button btnSave          = (Button) dialog.findViewById(R.id.save);
        final String selectedDate =""; // selected date

        // Show a datepicker when the dateButton is clicked
        btnDatePicker.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Calendar now = Calendar.getInstance();
                final Calendar c = Calendar.getInstance();

                DatePickerDialog dpd = new DatePickerDialog(context.getContext(),
                        new DatePickerDialog.OnDateSetListener() {

                            @Override
                            public void onDateSet(DatePicker view, int year,
                                                  int monthOfYear, int dayOfMonth) {
                                selectedDate = dayOfMonth + "-"
                                        + (monthOfYear + 1) + "-" + year;
                                btnDatePicker.setText(dayOfMonth + "-"
                                        + (monthOfYear + 1) + "-" + year);

                            }
                        }, c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DATE));
                dpd.show();


            }
        });




        btnSave.setOnClickListener(new View.OnClickListener(){
                                       @Override
                                       public void onClick(View view) {

                                           if(firstName.getText().toString().equals("")) {
                                               firstName.setError("Enter first name");
                                               return;
                                           }
                                           if(lastName.getText().toString().equals("")) {
                                               lastName.setError("Enter last name");
                                               return;
                                           }

                                           if(age.getText().toString().equals("")){
                                               age.setError("Enter age ");
                                           }

                                           if (manRadioGroup.getCheckedRadioButtonId() == -1)
                                           {
                                               Toast.makeText(TravellerDetailsActivity.this, "Please select title (Mr. or Mrs or Miss) ", Toast.LENGTH_LONG).show();
                                               return;
                                           }

                                           RadioButton radioButton = (RadioButton) dialog.findViewById(manRadioGroup.getCheckedRadioButtonId());

                                           et.setText(radioButton.getText().toString()+" "+firstName.getText().toString()+" "+middleName.getText().toString()+" "+lastName.getText().toString());

                                           Guest guest = new Guest();

                                           Passengers passengers = new Passengers();
                                           passengers.setTitle(radioButton.getText().toString());
                                           passengers.setFirstName(firstName.getText().toString());
                                           passengers.setLastName(lastName.getText().toString());
                                           passengers.setIsLeadPax("false");
                                           passengers.setAge(age.getText().toString());
                                           passengers.setPaxType("1");
                                           if(radioButton.getText().toString().equals("Master."))
                                               passengers.setGender("1");
                                           else
                                               passengers.setGender("2");

                                           passengers.setDateOfBirth("08-04-1993");
                                           passengers.setFFAirline("");
                                           passengers.setFFNumber("");
                                           passengers.setCountryCode(getUserCountry(TravellerDetailsActivity.this));
                                           passengers.setContactNo(mobile.getText().toString());
                                           passengers.setAddressLine1("kk nagar");
                                           passengers.setCity("madurai");
                                           passengers.setCountryName("India");

                                           Fare fare = new Fare();
                                           fare.setBaseFare(1950);
                                           fare.setTax(440);
                                           fare.setYQTax(0);
                                           fare.setAdditionalTxnFeeOfrd(0);
                                           fare.setAdditionalTxnFeePub(0);
                                           fare.setPGCharge(0);

                                           Seat seat = new Seat();
                                           seat.setCode("");
                                           seat.setDescription("");

                                           Meal meal = new Meal();
                                           meal.setCode("");
                                           meal.setDescription("");

                                           guest.setPassengers(passengers);
                                           guest.setFare(fare);
                                           guest.setMeal(meal);
                                           guest.setSeat(seat);

                                           guests.add(guest);



                                           dialog.dismiss();
                                       }
                                   }
        );
        Button btnCancel        = (Button) dialog.findViewById(R.id.cancel);
        btnCancel.setOnClickListener(new View.OnClickListener(){
                                         @Override
                                         public void onClick(View view) {
                                             dialog.dismiss();
                                         }
                                     }
        );
        dialog.show();
    }
});
Jai Khambhayta
  • 4,198
  • 2
  • 22
  • 29