2017-05-19 96 views
2

也许有人知道组件(视图)来选择范围?像:选择月份和年份范围(不含天)Android

Select from:  select to: 
month+year  month+year 

like this photo, but needed range selection

我瑶池在GitHub上的DatePicker的观点只能用天选择范围: github

但在此组件绘制日期:(

+0

http://stackoverflow.com/questions/21321789/android-datepicker-change-to-only-month-and-year看这里 –

+0

可能重复的[Android DatePicker更改为仅月和年](http:///stackoverflow.com/questions/21321789/android-datepicker-change-to-only-month-and-year) –

+0

不重复。所有这些回答不是关于范围选择 –

回答

1

看到这个问题: Android DatePicker change to only Month and Year

我会张贴在评论,但我没有这样的权限。

有比Pratik凯特的答案更多的选择。

编辑:我知道这些解决方案不提供范围选择,但我认为这可以很容易地解决使用两个选择器 - “从 - 到”。

查看截图在这个项目中:Material Date and Time Picker with Range Selection

我觉得它看起来不错。我可以想象,只有使用一个选择器(不得不使用某种长按或拖动事件)来选择范围时,许多用户会感到困惑。

+0

是的,我创建了此DatePicker。此组件没有范围选择功能 –

+0

我编辑了我的答案 –

+0

是的你说得对,我想与2 DatePicker没有DATE选择 –

0

试试下面的代码它。将显示只有年份和月份(不含日期)的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(); 
+0

你也可以检查这一个:https://github.com/code-troopers/android-betterpickers –

+0

为答案:这个代码选择只是月+年,但不是范围。 对于凯特回答:不错,但没有月份+年份范围:( –