[Android]只显示月和日的DatePickerDialog
一、效果图
1.1 默认
1.2 处理后
二、实现代码
2.1 代码片段1
* 从当前Dialog中查找DatePicker子控件
*
* @param group
* @return
*/
private DatePicker findDatePicker(ViewGroup group) {
if (group != null) {
for (int i = 0, j = group.getChildCount(); i < j; i++) {
View child = group.getChildAt(i);
if (child instanceof DatePicker) {
return (DatePicker) child;
} else if (child instanceof ViewGroup) {
DatePicker result = findDatePicker((ViewGroup) child);
if (result != null)
return result;
}
}
}
return null;
}
通过断点也看到Dialog的ContentView里有DatePicker子控件,这里通过遍历的办法来查找这个控件。
2.2 使用代码
mDialog = new CustomerDatePickerDialog(getContext(), this,
cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),
cal.get(Calendar.DAY_OF_MONTH));
mDialog.show();
DatePicker dp = findDatePicker((ViewGroup) mDialog.getWindow().getDecorView());
if (dp != null) {
((ViewGroup) dp.getChildAt(0)).getChildAt(0).setVisibility(View.GONE);
}
代码说明:
通过源码可以看得到DatePicker内置三个NumberPicker控件,依次表示年、月、日,隐藏掉第一个即可。
三、补充
后续使用中发现标题栏也要改,通过查看DatePickerDialog源码,需要自定义并实现onDateChanged方法才可实现,如下代码:
public CustomerDatePickerDialog(Context context,
OnDateSetListener callBack, int year, int monthOfYear,
int dayOfMonth) {
super(context, callBack, year, monthOfYear, dayOfMonth);
}
@Override
public void onDateChanged(DatePicker view, int year, int month, int day) {
super.onDateChanged(view, year, month, day);
mDialog.setTitle((month + 1) + "月" + day + "日");
}
}
本文转自博客园农民伯伯的博客,原文链接:[Android]只显示月和日的DatePickerDialog,如需转载请自行联系原博主。
[Android]只显示月和日的DatePickerDialog相关推荐
- Android 只显示一次引导页
Android 只显示一次引导页 以前一直被网络上的代码坑,这次做个记录,也算是帮一帮正在被坑的人 这个方法不需要创建新的Activity或者Fragment 其实这个功能的逻辑是:当你第一次点击ap ...
- element日历组件只显示月和日,把年份隐藏掉
官网上显示的日历, 我们要做的是,把年份和旁边的两个小标志小标去掉, 也就是把这红色框框内的内容隐藏掉 我们先用控制台看看里面具体的样式 我们可以看到 class ="el-date-pic ...
- android系统日期对话框只显示年月,android 只显示年月的日历
这是一篇不完整的文章 希望看到的读者 能够 跟我完善一下 ! 这系统自带的日历 多多少少 会有弊端 ! 手机版本不一样 操作不一样 所以我们在判断隐藏某一部分之前 还要判断api的版本 这是我要达成的 ...
- android 修改DatePickerDialog只显示“年月”,去掉“日”显示
这两天在做一个项目,其中有个需求是让用户填写学业经历,那么只能选择年月,而不能出现日选择.通过在网上查资料,发现原理都是通过获取到Dialog布局中的年月日分别相对应的View,然后将其设置为GONE ...
- Android日历只显示年月,只显示年
Android日历只显示年月 款式如下: public class YearPickerDialog extends DatePickerDialog {public YearPickerDialog ...
- Android在ListView中嵌套一个GridView时只显示一行的原因及解决方法
在之前的编程里,我还没有遇到过要在一个ListView中嵌套一个GridView或是在一个GridView中嵌套一个ListView.所以今天事儿来了!我花了一将近3个小时,找到了为什么我在一个Lis ...
- 星星评价控件android开发_android自定义星级评分控件,可实现只显示实心星星
话不多说,上图 近日app需求弄一个等级展示,看了下UI图,只显示实星(点亮的星星).如图 但是网上关于星级评分的例子大多这样 也展示虚心星星 通过自定义Viewpackage com.starsba ...
- android 只能输入汉字,EditText限制输入的几种方式及只显示中文汉字的做法
前段时间项目中有个需求是要求只能输入汉字,并且不能输入偏旁部首,于是总结了下EditText限制输入的几种方式,但是对于语音输入的还没找到好的解决方案: 通过设置EditText的inputType来 ...
- android开发之高德地图不能定位,只显示格子
android 在引用高德地图组件进行开发的时候,不能定位,只显示格子,如下图所示: 参考了网上的一下大家的解决方案,主要是 (1)检查申请的KEY是否正确.PS:申请方法请参考这篇博客,写的很全很详 ...
最新文章
- Java之 将程序打包成jar包
- 惠普服务器年销售额,IBM和惠普去年分列服务器收入和发货量第一
- win10 本地升级和系统覆盖更新教程
- Go 实现 soundex 算法
- android4.2 音频模块启动分析,Android 音频模块学习小结
- 父子域+主辅域控的搭建
- python之集合操作 - |
- http权威指南完整版
- linux设备驱动程序第10章,linux中秒字符设备驱动(宋宝华设备驱动开发详解第10章)...
- 浪潮服务器bios更改硬盘模式,bios更改硬盘模式详细教程
- 2:人民币与美元汇率兑换程序
- 易语言打开c 程序,易语言调用word 易语言按钮打开一个word文档
- java虚拟机与安卓虚拟机的区别
- php 工商银行公众号支付代码_微信支付 —— 公众号支付代码详解(1/7)
- 财商帮解读:高质量的社群都离不开这10个关键要素!
- WSTMart二次开发目录说明
- 安卓TabLayout的使用
- MES系统——工艺管理篇
- 计算机硬件加速怎么开,硬件加速有什么用(电脑如何开启硬件加速)
- 仓库管理怎么做?这5大仓库管理软件能帮到你
热门文章
- sqlite3数据存储最多存储多少条数据?达到上限如何处理?_在数据爆炸的当下,教你设计一个能实现9个9数据可靠性的存储系统...
- 深度优先遍历_二叉树的深度优先遍历,理解框架真的能够套用题目吗?不了解执行过程可能很难。...
- mysql 字符串有有乱码 转码_第09期:有关 MySQL 字符集的乱码问题
- eureka自我保护时间_Spring Cloud Eureka 自我保护机制
- es6数组去重_JavaScript数组去重
- ajax传递数组 php,jQuery.ajax向后台传递数组问题如何解决
- 将pdf转为html,使用pdfdom将pdf转为html
- android sqlite自定义函数,Android中自定义一个View的方法详解
- 关于MM32-Link Programmer软件修改建议
- 2021年信号与系统作业统计处理