博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DatePicker隐藏年/月/日
阅读量:4558 次
发布时间:2019-06-08

本文共 1341 字,大约阅读时间需要 4 分钟。

有时候项目中进行时间设置时,只需要设置年/或月/或日。这时候就需要对相应的部分进行隐藏。

1 DatePicker datePk = (DatePicker) findViewById(R.id.dp_date);2 // 获取到年/月/日所在的组件群3 ViewGroup targetGroup = (ViewGroup) ((ViewGroup) datePk.getChildAt(0)).getChildAt(0);4 //接下来即可根据位置来隐藏年/月/日,如5 targetGroup.getChildAt(0); //隐藏年
== === === = == === == =  = = ===== = = 后来发现,上面这个方法还是算比较不好的,因为有些手机年月日第顺序刚好与上面的相反。这就会导致本来打算隐藏年,而结果“日”却不见了。 下面的稍微好些
1 private void hideDay(DatePicker datePicker) { 2         Field[] datePickerFields = datePicker.getClass().getDeclaredFields(); 3         for (Field field : datePickerFields) { 4             // 其中mDaySpinner为DatePicker中为“日”定义的变量名 5             if ("mDaySpinner".equals(field.getName())) { 6                 field.setAccessible(true); 7                 Object dayPicker = new Object(); 8                 try { 9                     dayPicker = field.get(datePicker);10                 } catch (IllegalAccessException e) {11                     e.printStackTrace();12                 } catch (IllegalArgumentException e) {13                     e.printStackTrace();14                 }15                 ((View) dayPicker).setVisibility(View.GONE);16             }17         }18     }

 另外要注意到是,在4.0以前,DatePicker中控件的名字是mDayPicker/mMonthPicker/mYearPicker。在4.0之后才改成了mDayspinner/mMonthSpinner/mYearSpinner.

转载于:https://www.cnblogs.com/ivan-aldrich/p/4227439.html

你可能感兴趣的文章
Java-Maven-Runoob:Maven 依赖管理
查看>>
杂项-Log:log4net
查看>>
杂项-Java:EL表达式
查看>>
tarroni music
查看>>
unity 使用RotateAround的使用注意
查看>>
[SDOI2009]HH的项链
查看>>
CodeFirst模式,容易引发数据迁移问题(不建议使用)
查看>>
jquery的colorbox关闭并传递数据到父窗
查看>>
使用Nginx、Keepalived构建文艺负载均衡
查看>>
phpmyadmin 开放远程登录的权限
查看>>
linux安装gcc和gcc-c++
查看>>
qq登陆错误提示
查看>>
bzoj 1192: [HNOI2006]鬼谷子的钱袋 思维 + 二进制
查看>>
没写完,没调完,咕咕咕的代码
查看>>
Android Studio使用技巧:导出jar包
查看>>
Problem E. TeaTree - HDU - 6430 (树的启发式合并)
查看>>
Kafka序列化和反序列化与示例
查看>>
【Windows 8 Store App】学习一:获取设备信息
查看>>
实现Windows程序的数据更新
查看>>
win10下VS2010中文输入法切换为英文卡死
查看>>