一、效果图

    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  使用代码

        final Calendar cal = Calendar.getInstance();
        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方法才可实现,如下代码:

    class CustomerDatePickerDialog extends DatePickerDialog {

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相关推荐

  1. Android 只显示一次引导页

    Android 只显示一次引导页 以前一直被网络上的代码坑,这次做个记录,也算是帮一帮正在被坑的人 这个方法不需要创建新的Activity或者Fragment 其实这个功能的逻辑是:当你第一次点击ap ...

  2. element日历组件只显示月和日,把年份隐藏掉

    官网上显示的日历, 我们要做的是,把年份和旁边的两个小标志小标去掉, 也就是把这红色框框内的内容隐藏掉 我们先用控制台看看里面具体的样式 我们可以看到 class ="el-date-pic ...

  3. android系统日期对话框只显示年月,android 只显示年月的日历

    这是一篇不完整的文章 希望看到的读者 能够 跟我完善一下 ! 这系统自带的日历 多多少少 会有弊端 ! 手机版本不一样 操作不一样 所以我们在判断隐藏某一部分之前 还要判断api的版本 这是我要达成的 ...

  4. android 修改DatePickerDialog只显示“年月”,去掉“日”显示

    这两天在做一个项目,其中有个需求是让用户填写学业经历,那么只能选择年月,而不能出现日选择.通过在网上查资料,发现原理都是通过获取到Dialog布局中的年月日分别相对应的View,然后将其设置为GONE ...

  5. Android日历只显示年月,只显示年

    Android日历只显示年月 款式如下: public class YearPickerDialog extends DatePickerDialog {public YearPickerDialog ...

  6. Android在ListView中嵌套一个GridView时只显示一行的原因及解决方法

    在之前的编程里,我还没有遇到过要在一个ListView中嵌套一个GridView或是在一个GridView中嵌套一个ListView.所以今天事儿来了!我花了一将近3个小时,找到了为什么我在一个Lis ...

  7. 星星评价控件android开发_android自定义星级评分控件,可实现只显示实心星星

    话不多说,上图 近日app需求弄一个等级展示,看了下UI图,只显示实星(点亮的星星).如图 但是网上关于星级评分的例子大多这样 也展示虚心星星 通过自定义Viewpackage com.starsba ...

  8. android 只能输入汉字,EditText限制输入的几种方式及只显示中文汉字的做法

    前段时间项目中有个需求是要求只能输入汉字,并且不能输入偏旁部首,于是总结了下EditText限制输入的几种方式,但是对于语音输入的还没找到好的解决方案: 通过设置EditText的inputType来 ...

  9. android开发之高德地图不能定位,只显示格子

    android 在引用高德地图组件进行开发的时候,不能定位,只显示格子,如下图所示: 参考了网上的一下大家的解决方案,主要是 (1)检查申请的KEY是否正确.PS:申请方法请参考这篇博客,写的很全很详 ...

最新文章

  1. Java之 将程序打包成jar包
  2. 惠普服务器年销售额,IBM和惠普去年分列服务器收入和发货量第一
  3. win10 本地升级和系统覆盖更新教程
  4. Go 实现 soundex 算法
  5. android4.2 音频模块启动分析,Android 音频模块学习小结
  6. 父子域+主辅域控的搭建
  7. python之集合操作 - |
  8. http权威指南完整版
  9. linux设备驱动程序第10章,linux中秒字符设备驱动(宋宝华设备驱动开发详解第10章)...
  10. 浪潮服务器bios更改硬盘模式,bios更改硬盘模式详细教程
  11. 2:人民币与美元汇率兑换程序
  12. 易语言打开c 程序,易语言调用word 易语言按钮打开一个word文档
  13. java虚拟机与安卓虚拟机的区别
  14. php 工商银行公众号支付代码_微信支付 —— 公众号支付代码详解(1/7)
  15. 财商帮解读:高质量的社群都离不开这10个关键要素!
  16. WSTMart二次开发目录说明
  17. 安卓TabLayout的使用
  18. MES系统——工艺管理篇
  19. 计算机硬件加速怎么开,硬件加速有什么用(电脑如何开启硬件加速)
  20. 仓库管理怎么做?这5大仓库管理软件能帮到你

热门文章

  1. sqlite3数据存储最多存储多少条数据?达到上限如何处理?_在数据爆炸的当下,教你设计一个能实现9个9数据可靠性的存储系统...
  2. 深度优先遍历_二叉树的深度优先遍历,理解框架真的能够套用题目吗?不了解执行过程可能很难。...
  3. mysql 字符串有有乱码 转码_第09期:有关 MySQL 字符集的乱码问题
  4. eureka自我保护时间_Spring Cloud Eureka 自我保护机制
  5. es6数组去重_JavaScript数组去重
  6. ajax传递数组 php,jQuery.ajax向后台传递数组问题如何解决
  7. 将pdf转为html,使用pdfdom将pdf转为html
  8. android sqlite自定义函数,Android中自定义一个View的方法详解
  9. 关于MM32-Link Programmer软件修改建议
  10. 2021年信号与系统作业统计处理