自定义DatePicker

我被困在DatePicker的几个问题,我似乎无法find任何解决scheme。

我目前有一个DatePickerDialog,非常适合我的需要,我还需要能够隐藏/禁用date和月份字段(为了select一个月或一年),我找不到任何解决scheme,除了实施我的自己的MonthPicker / yearPicker。 事实上,我不知道从哪里开始写一个与默认风格相同风格的select器。

我会很高兴,如果你有任何自定义datepicjer示例代码或任何简单的想法来应付我的问题。

非常感谢

Solutions Collecting From Web of "自定义DatePicker"

我的想法是使用android的自定义dateselect器。 在Google Code中,我find了一个名为Android Wheel的开源项目

日期时间选择器的Android轮子

在Google Code检出源代码之后,您会find几个示例,以便您可以轻松地自定义年份select器。

蜂窝中有一些变化。

ViewGroup group = (ViewGroup) findViewById(R.id.picker); group = (ViewGroup) group.getChildAt(0); group = (ViewGroup) group.getChildAt(0); // 0:datepicker , 1:calendar Toast.makeText(this, String.format("%s children", group.getChildCount()), Toast.LENGTH_SHORT).show(); try{ group.getChildAt(0).setVisibility(View.GONE); // 0 for year, 1 for month, 2 for day }catch(Exception e){ Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show(); } 

它有点hacky,但如果你看看DatePicker的布局,你可以看到它的一个FrameLayout包含3个子视图。 所以我想隐藏一年,做到这一点。

  public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ViewGroup group = (ViewGroup) findViewById(R.id.picker); group = (ViewGroup) group.getChildAt(0); Toast.makeText(this, String.format("%s children", group.getChildCount()), Toast.LENGTH_SHORT).show(); try{ group.getChildAt(2).setVisibility(View.GONE); // 2 for year, 1 for day, 0 for month }catch(Exception e){ Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show(); } } 

这将获得选取器的framelayout,然后隐藏其今年的第三个孩子。 希望这可以帮助!