我几次遇到DatePicker问题,我似乎无法找到任何解决方案。
我目前有一个DatePickerDialog非常适合我的需求我也需要能够隐藏/禁用Day和Month字段(为了选择一个月或一年),我找不到任何解决方案除了实现我自己的MonthPicker / yearPicker。事实是我真的不知道从哪里开始编写一个与默认样式相同的选择器。
如果你们中的任何人有自定义日期picjer的示例代码或任何更简单的想法来应对我的问题,我会很高兴。
非常感谢
封口
答案 0 :(得分:7)
我的想法是为Android使用自定义日期选择器。在Google Code中,我找到了一个名为Android Wheel
的开源项目
结帐来自Google代码的源代码后,您会找到几个示例,以便您可以根据需要轻松自定义年份选择器。
答案 1 :(得分:3)
蜂窝有一些变化。
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();
}
答案 2 :(得分:1)
它有点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,然后隐藏其第三个孩子,即年份。希望这有帮助!