我的应用程序的要求之一是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
仅显示Month
和Year
而没有Day
吗? 最佳答案
您可以添加此库
点击here
然后您可以使用MonthDayPicker
new DialogPlusBuilder().blurBackground()
.buildMonthDayPickerDialog(Calendar.getInstance(),
(pickedMonth, pickedDay) ->{ //TODO implement your business}
.show(getSupportFragmentManager(), "Month Day Picker");