实现的效果如下,给textView 添加点击事件,弹出自定义对话框

....
view.findViewById(R.id.age_title).setOnClickListener(new View.OnClickListener( ) {@Overridepublic void onClick(View view) {onDataClick();}});
....Dialog dialog=null;private void onDataClick(){if(dialog==null){dialog = new Dialog(getContext());dialog.setContentView(R.layout.date_year_month_view);}Button btn_left = (Button) dialog.findViewById(R.id.btn_left);Button btn_right = (Button) dialog.findViewById(R.id.btn_right);final MonthPicker monthPicker = (MonthPicker) dialog.findViewById(R.id.month_picker);//tv_body_msg.setText(R.string.dialog_msg);dialog.setCancelable(true);//点击左侧按钮btn_left.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();}});//点击右键btn_right.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {sAge.setText(String.format("%d.%02d", monthPicker.getYear(), monthPicker.getMonth() + 1));dialog.dismiss();}});dialog.show();}

自定义对话框的View,layout

date_year_month_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/dialog_shape_bg"
android:layout_margin="10dp"
android:padding="0dp"
android:orientation="vertical"><TextViewandroid:id="@+id/tv_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="提 示"android:textSize="20sp"android:textColor="#666666"android:layout_marginTop="10dp"android:layout_gravity="center" /><com.view.MonthPickerandroid:id="@+id/month_picker"android:layout_gravity="center"android:layout_margin="32dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:calendarViewShown="false"android:datePickerMode="spinner"/><Viewandroid:layout_width="match_parent"android:layout_height="0.5dp"android:layout_marginTop="15dp"android:background="#C2C2C2" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="0dp"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_left"android:layout_width="0dp"android:layout_height="40dp"style="android:attr/buttonBarButtonStyle"android:text="取消"android:textSize="18sp"android:background="@android:color/transparent"android:textColor="#006600"android:layout_weight="1"/><Viewandroid:layout_width="0.5dip"android:layout_height="match_parent"android:background="#C2C2C2"            android:layout_gravity="center_horizontal" /><Buttonandroid:id="@+id/btn_right"android:layout_width="0dp"android:layout_height="40dp"style="android:attr/buttonBarButtonStyle"android:text="确定"android:background="@android:color/transparent"android:textColor="#006600"android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>

自定义 MonthPicker.java

package com.view;import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.DatePicker;import java.util.Locale;public final class MonthPicker extends DatePicker {public MonthPicker(Context context, AttributeSet attrs) {super(context, attrs);ViewGroup viewGroup = (ViewGroup) ((ViewGroup) getChildAt(0)).getChildAt(0);int groupChildCount = viewGroup.getChildCount();switch (Locale.getDefault().getLanguage()) {case "zh":if (groupChildCount == 3) {viewGroup.getChildAt(2).setVisibility(GONE);} else if (groupChildCount == 5) {viewGroup.getChildAt(3).setVisibility(GONE);viewGroup.getChildAt(4).setVisibility(GONE);}break;case "en":if (groupChildCount == 3) {viewGroup.getChildAt(1).setVisibility(GONE);} else if (groupChildCount == 5) {viewGroup.getChildAt(2).setVisibility(GONE);viewGroup.getChildAt(3).setVisibility(GONE);}break;}}}

drawable 目录下添加一个圆角的dialog 背景

dialog_shape_bg.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><!-- 填充的颜色:这里设置背景透明 --><!-- <solid android:color="@android:color/transparent" /> --><solid android:color="#FFF" /><!-- 边框的颜色 :不能和窗口背景色一样--><strokeandroid:width="5dp"android:color="#ffffff" /><!-- 设置按钮的四个角为弧形 --><!-- android:radius 弧形的半径 --><corners android:radius="5dip" />
</shape>

Android 自定义DatePick 只显示年月,日期选择年月相关推荐

  1. android 自定义控件 焦点,Android 自定义Button按钮显示样式(正常、按下、获取焦点)...

    现在的用户对APP的外观看得很重要,如果APP内所有元件都用Android默认样式写,估计下面评论里就有一堆在骂UI丑的.今天学习自定义Button按钮样式.Button样式修改的是Button的背景 ...

  2. android自定义dialog不显示,Android 自定义的dialog显示不正常呢,怎么回事???

    Android 自定义的dialog显示不正常呢,怎么回事??? 用android的自定义布局文件: android:layout_width="match_parent" and ...

  3. Android自定义Textview 蒙语显示(蒙古文字)

    Android自定义Textview 蒙语显示(蒙古文字) 竖排Textview 自动换行 从左到右 蒙语字体包 demo下载地址 https://download.csdn.net/download ...

  4. android显示图片部分区域,Android编程实现只显示图片一部分的方法

    本文实例讲述了Android编程实现只显示图片一部分的方法.分享给大家供大家参考,具体如下: 在Android应用程序中加载一张图片,然后把它显示出来这是一件非常容易的事情,那怎么才能显示一张图片的一 ...

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

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

  6. Android中DatePicker只显示年月的方法

    最近项目中有一个选择信用卡有效期的功能,只需要选择年月,但是Android原生的DatePicker默认是可以选择年月日的,所以我们要做下特殊的处理, 并且Android5.0以上和以下的版本的处理方 ...

  7. android gridview 不显示,android解决gridview只显示一半

    gridview在ScrollView中使用 android:layout_height="wrap_content" 发现并没有显示全部,而只是显示了一半.为了解决这个问题,打算 ...

  8. android自定义dialog不显示,有关问题解决之Android自定义Dialog无法dismiss

    问题解决之Android自定义Dialog无法dismiss 场景: 点击ListView的一个Item,弹出自定义Dialog.在初始化Dialog时,将一个OnClickListener作为参数传 ...

  9. android日历控件之显示当前月份,Android 日历方式显示的日期选择组件(日历控件之一).doc...

    运行结果: 此Widget组件只包含五个类文件: DateWidget DateWidgetDayCell DateWidgetDayHeader DayStyle SymbolButton *红色为 ...

最新文章

  1. 《研磨设计模式》chap22 装饰模式Decorator(3)I/O流
  2. Java实现简单的队和栈
  3. 怎么看生辰八字中五行缺什么
  4. 软件架构设计案例_透过现象看本质:常见的前端架构风格和案例
  5. java 通用组件_写一个通用数据访问组件
  6. 如何解决打开PDF文件时显示已损坏无法修复的问题!
  7. IndexError: Target 25 is out of bounds.
  8. js 多线程Worker
  9. 洛谷-P1107 [BJWC2008]雷涛的小猫
  10. Chrome在Win下的跨域解决方案
  11. 利用UE4深度图制作空间开敞度可视化工具
  12. 探月工程总设计师:嫦娥四号探索结果具有原创性
  13. 【李宏毅深度强化学习笔记】6、Actor-Critic、A2C、A3C、Pathwise Derivative Policy Gradient
  14. python语言语块句的标记_个人学习记录
  15. CSDN上海英雄会嘉宾及议程曝光 不能错过的期待
  16. oracle 查重复数,在英文写作中如何正确使用名词的单复数?
  17. django学习笔记- oneday
  18. SEO排名一落千丈,如何做到“绝地求生”?
  19. Android 开发小工具之:Custom Tabs
  20. ubuntu7.10下使用QQ聊天-wine+QQ2007安装设置方法

热门文章

  1. 量化风控系列--风险定价(一)
  2. 有没有你家?贵阳七村拟入选全省乡村旅游重点村名录
  3. 【算法与数据结构】—— 动态规划之背包问题
  4. 福建程序员行业技术微信交流群,福建的小伙伴看过来了!
  5. 微信小程序获取数据库的数据返回空数组
  6. C语言return水仙花数,c语言(百合花)水仙花数的算法
  7. 什么是BGP线路?什么是BGP机房?
  8. css实现实心三角形、有边框的三角形和空心三角形
  9. [树形dp] Jzoj P5906 传送门
  10. 赵小楼《天道》《遥远的救世主》深度解析(73)你认为的玄幻不可描述的事物都是有其理法可循,认识了理法,玄也就不玄了