【问题标题】:How to implement a month chooser in android如何在android中实现月份选择器
【发布时间】:2016-02-25 05:32:10
【问题描述】:

我需要在 android 中实现月份选择器,在这里我可以选择月份和年份而不是日期。我试图在 android 日期选择器中隐藏日期选项,但它不起作用。我只需要日历中的月份和年份.怎么做。请帮帮我。

【问题讨论】:

  • 为什么不拥有自己的选择器 :) 两个下拉列表,一个是一个月(有 12 个值)一个是年,无论你想要什么数字!!!
  • 但这个答案对我不起作用

标签: android datepicker


【解决方案1】:

试试下面的代码。它会显示一个只有年月(没有日)的 DatePicker

private DatePickerDialog createDialogWithoutDateField() {
        DatePickerDialog dpd = new DatePickerDialog(this, null, 2014, 1, 24);
        try {
            java.lang.reflect.Field[] datePickerDialogFields = dpd.getClass().getDeclaredFields();
            for (java.lang.reflect.Field datePickerDialogField : datePickerDialogFields) {
                if (datePickerDialogField.getName().equals("mDatePicker")) {
                    datePickerDialogField.setAccessible(true);
                    DatePicker datePicker = (DatePicker) datePickerDialogField.get(dpd);
                    java.lang.reflect.Field[] datePickerFields = datePickerDialogField.getType().getDeclaredFields();
                    for (java.lang.reflect.Field datePickerField : datePickerFields) {
                        Log.i("test", datePickerField.getName());
                        if ("mDaySpinner".equals(datePickerField.getName())) {
                            datePickerField.setAccessible(true);
                            Object dayPicker = datePickerField.get(datePicker);
                            ((View) dayPicker).setVisibility(View.GONE);
                        }
                    }
                }
            }
        } 
        catch (Exception ex) {
        }
        return dpd;
    }

此方法返回一个日期选择器对话框。因此,在您的按钮的 onClick 方法中添加以下代码以显示您的对话框。

createDialogWithoutDateField().show();

【讨论】:

  • 我试过这个。但它不起作用。它仍然显示日历中的天数,因为第二个 for 循环不起作用。
  • 第二个for循环中if条件不满足
  • mDeligate,LOG_TAG,MODE_CALENDAR,MODE_SPINNER 这些是第二个 for 循环中 datePickerField.getName() 的值,因此它永远不会与“mDaySpinner”匹配
  • 这不起作用,如果 ("mDaySpinner".equals(datePickerField.getName())) 总是错误的。网络中的每一个地方都是答案,但它没有醒来。请更新你的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-01
相关资源
最近更新 更多