Kharisma
Kharisma

Reputation: 107

DialogFragment not show

I want to show my DialogFragment in my Fragment Home, I already make the Dialog Fragment and make class SelectDateFragment, but when I run my app its nothing happen with no error my Onclick Text View to Show Dialog Fragment

void onClickDate(View view){
    txtDate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            try{
                DialogFragment newFragment= new SelectDateFragment();
                newFragment.show(getFragmentManager(),"DatePicker");
            }
            catch (Exception e){
                e.toString();
            }
        }
    });
}

mySelect DateFragment

public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener{

    @RequiresApi(api = Build.VERSION_CODES.N)
    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        final Calendar calendar = Calendar.getInstance();
        int yy = calendar.get(Calendar.YEAR);
        int mm = calendar.get(Calendar.MONTH);
        int dd = calendar.get(Calendar.DAY_OF_MONTH);
        return new DatePickerDialog(getActivity(), this, yy, mm, dd);
    }

    public void onDateSet(DatePicker datePicker, int yy, int mm, int dd) {
        populateSetDate(yy,mm+1,dd);
    }
    public void populateSetDate(int year, int month, int day) {
        txtDate.setText(month+"/"+day+"/"+year);
    }
}

Upvotes: 0

Views: 216

Answers (2)

user4571931
user4571931

Reputation:

use below method select user current date after and before date are disable..

 /**
 * this method used show date picker.
 * and user select current date after.
 * before data are disable.
 */
private void selectDate() {
    Calendar calendar = Calendar.getInstance();
    DatePickerDialog d = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker datePicker, int year, int month, int day) {

            month = month + 1;
            String date = month + "/" + day + "/" + year;
            Log.d("Date::",date);
        }
    }, calendar
            .get(Calendar.YEAR), calendar.get(Calendar.MONTH),
            calendar.get(Calendar.DAY_OF_MONTH));
    d.getDatePicker().setMinDate(System.currentTimeMillis()-1000);
    d.show();
}

Upvotes: 1

Shrikant
Shrikant

Reputation: 1580

Use this

 private void openDatePicker() {
    Calendar calendar = Calendar.getInstance();
    DatePickerDialog d = new DatePickerDialog(activity, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker datePicker, int year, int month, int day) {

            month = month + 1;
            String date = month + "/" + day + "/" + year;
            editDob.setText(date);
        }
    }, calendar
            .get(Calendar.YEAR), calendar.get(Calendar.MONTH),
            calendar.get(Calendar.DAY_OF_MONTH));
    d.getDatePicker().setMinDate(System.currentTimeMillis());
    d.show();
}

Upvotes: 1

Related Questions