Android 自定义DatePick 只显示年月,日期选择年月
实现的效果如下,给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 只显示年月,日期选择年月相关推荐
- android 自定义控件 焦点,Android 自定义Button按钮显示样式(正常、按下、获取焦点)...
现在的用户对APP的外观看得很重要,如果APP内所有元件都用Android默认样式写,估计下面评论里就有一堆在骂UI丑的.今天学习自定义Button按钮样式.Button样式修改的是Button的背景 ...
- android自定义dialog不显示,Android 自定义的dialog显示不正常呢,怎么回事???
Android 自定义的dialog显示不正常呢,怎么回事??? 用android的自定义布局文件: android:layout_width="match_parent" and ...
- Android自定义Textview 蒙语显示(蒙古文字)
Android自定义Textview 蒙语显示(蒙古文字) 竖排Textview 自动换行 从左到右 蒙语字体包 demo下载地址 https://download.csdn.net/download ...
- android显示图片部分区域,Android编程实现只显示图片一部分的方法
本文实例讲述了Android编程实现只显示图片一部分的方法.分享给大家供大家参考,具体如下: 在Android应用程序中加载一张图片,然后把它显示出来这是一件非常容易的事情,那怎么才能显示一张图片的一 ...
- android 修改DatePickerDialog只显示“年月”,去掉“日”显示
这两天在做一个项目,其中有个需求是让用户填写学业经历,那么只能选择年月,而不能出现日选择.通过在网上查资料,发现原理都是通过获取到Dialog布局中的年月日分别相对应的View,然后将其设置为GONE ...
- Android中DatePicker只显示年月的方法
最近项目中有一个选择信用卡有效期的功能,只需要选择年月,但是Android原生的DatePicker默认是可以选择年月日的,所以我们要做下特殊的处理, 并且Android5.0以上和以下的版本的处理方 ...
- android gridview 不显示,android解决gridview只显示一半
gridview在ScrollView中使用 android:layout_height="wrap_content" 发现并没有显示全部,而只是显示了一半.为了解决这个问题,打算 ...
- android自定义dialog不显示,有关问题解决之Android自定义Dialog无法dismiss
问题解决之Android自定义Dialog无法dismiss 场景: 点击ListView的一个Item,弹出自定义Dialog.在初始化Dialog时,将一个OnClickListener作为参数传 ...
- android日历控件之显示当前月份,Android 日历方式显示的日期选择组件(日历控件之一).doc...
运行结果: 此Widget组件只包含五个类文件: DateWidget DateWidgetDayCell DateWidgetDayHeader DayStyle SymbolButton *红色为 ...
最新文章
- 《研磨设计模式》chap22 装饰模式Decorator(3)I/O流
- Java实现简单的队和栈
- 怎么看生辰八字中五行缺什么
- 软件架构设计案例_透过现象看本质:常见的前端架构风格和案例
- java 通用组件_写一个通用数据访问组件
- 如何解决打开PDF文件时显示已损坏无法修复的问题!
- IndexError: Target 25 is out of bounds.
- js 多线程Worker
- 洛谷-P1107 [BJWC2008]雷涛的小猫
- Chrome在Win下的跨域解决方案
- 利用UE4深度图制作空间开敞度可视化工具
- 探月工程总设计师:嫦娥四号探索结果具有原创性
- 【李宏毅深度强化学习笔记】6、Actor-Critic、A2C、A3C、Pathwise Derivative Policy Gradient
- python语言语块句的标记_个人学习记录
- CSDN上海英雄会嘉宾及议程曝光 不能错过的期待
- oracle 查重复数,在英文写作中如何正确使用名词的单复数?
- django学习笔记- oneday
- SEO排名一落千丈,如何做到“绝地求生”?
- Android 开发小工具之:Custom Tabs
- ubuntu7.10下使用QQ聊天-wine+QQ2007安装设置方法