我的应用程序的要求之一是DatePickerDialog,它仅显示月份和年份而不显示日期。

这是我的代码:

   //define format of YYYYMMDD
    private final DateTimeFormatter dtf = DateTimeFormatter.BASIC_ISO_DATE;
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_salary);

        textView = (TextView) findViewById(R.id.spinner);
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Calendar c = Calendar.getInstance();
                int mYear = c.get(Calendar.YEAR);
                int mMonth = c.get(Calendar.MONTH);
                int mDay = c.get(Calendar.DAY_OF_MONTH);
                SupportedDatePickerDialog dpd = new SupportedDatePickerDialog(this, R.style.SpinnerDatePickerDialogTheme, new SupportedDatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(@NonNull DatePicker datePicker, int year, int month, int day) {
                        String date = LocalDate.of(year, month+1, day).format(dtf);
                        textView.setText(date);
                    }
                }, mYear, mMonth, mDay);
                dpd.show();
            }
        });
    }


我使用的是Ibotta的第三方库,因为我只想在选择日期时显示Spinner而不显示Calendar
 我尝试的所有其他操作均已弃用或无法正常工作。

我想知道是否可以重新配置这段代码,以使DatePickerDialog仅显示MonthYear而没有Day吗?

最佳答案

您可以添加此库

点击here
然后您可以使用MonthDayPicker

new DialogPlusBuilder().blurBackground()
                       .buildMonthDayPickerDialog(Calendar.getInstance(),
                    (pickedMonth, pickedDay) ->{ //TODO implement your business}
                       .show(getSupportFragmentManager(), "Month Day Picker");

07-26 07:02