2017-05-19 95 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

爲答案:這個代碼選擇只是月+年,但不是範圍。 對於凱特回答:不錯,但沒有月份+年份範圍:( –