Android中仅包含月份和年份的微调框

时间:2019-12-03 21:03:04

标签: java android android-datepicker datepickerdialog

我的应用程序中的一项要求是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吗?

1 个答案:

答案 0 :(得分:1)

您可以添加此库

点击here 然后您可以使用MonthDayPicker

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