package etelligens.com.foodsafety.utils; import android.app.AlertDialog; import android.app.DatePickerDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.widget.NumberPicker; import android.widget.Toast; import androidx.fragment.app.DialogFragment; import java.util.Calendar; import etelligens.com.foodsafety.R; /** * Created by ankititjunkies on 20/03/18. */ public class MonthYearPickerDialog extends DialogFragment { private static final int MAX_YEAR = 2099; private DatePickerDialog.OnDateSetListener listener; public void setListener(DatePickerDialog.OnDateSetListener listener) { this.listener = listener; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Get the layout inflater LayoutInflater inflater = getActivity().getLayoutInflater(); Calendar cal = Calendar.getInstance(); View dialog = inflater.inflate(R.layout.month_year_picker_dialog, null); final NumberPicker dayPicker = (NumberPicker) dialog.findViewById(R.id.picker_day); final NumberPicker monthPicker = (NumberPicker) dialog.findViewById(R.id.picker_month); final NumberPicker yearPicker = (NumberPicker) dialog.findViewById(R.id.picker_year); dayPicker.setMinValue(1); dayPicker.setMaxValue(31); dayPicker.setValue(cal.get(Calendar.DATE)); monthPicker.setMinValue(1); monthPicker.setMaxValue(12); monthPicker.setValue(cal.get(Calendar.MONTH)+1); int year = cal.get(Calendar.YEAR); yearPicker.setMinValue(1900); yearPicker.setMaxValue(2100); yearPicker.setValue(year); builder.setView(dialog) // Add action buttons .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { listener.onDateSet(null, yearPicker.getValue(), monthPicker.getValue(),dayPicker.getValue()); } }) .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { MonthYearPickerDialog.this.getDialog().cancel(); } }); return builder.create(); } }