etXyLevelDate.setOnTouchListener(selectDateTouchListener());
/**
* @desc 选择日期操作
* @param @return
* @return OnTouchListener
* @throws
*/
OnTouchListener selectDateTouchListener(){
return new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) {
final Calendar cd = Calendar.getInstance();
Date date = new Date();
cd.setTime(date); DatePickerDialog dp = new DatePickerDialog(
getActivity(),
new OnDateSetListener() {
public void onDateSet(DatePicker view, int year,int monthOfYear, int dayOfMonth) {
String dateStr = "";
if(falg){//年度
dateStr = ""+year;
}else{
dateStr = year+ StrUtil.adjustMonthDay(monthOfYear + 1);
} // 当用户选择完日期之后,进行查询操作
if (PhoneInfo.isConnectInternet(getActivity())) {
etXyLevelDate.setText(dateStr);
//
} else {
UIUtil.raDialog(getActivity(),WR.NET_NOT_CONN);
}
}
},
cd.get(Calendar.YEAR),
cd.get(Calendar.MONTH),
cd.get(Calendar.DAY_OF_MONTH)
);
dp.getDatePicker().setMinDate(DateUtil.getLongDate("2010-01-01"));// 设置选择的最小日期
dp.getDatePicker().setMaxDate(cd.getTime().getTime());// 设置选择的最大日期
dp.show(); // 隐藏
if (dp != null) {
int SDKVersion = PhoneInfo.getSDKVersionNumber();
if (SDKVersion < 11) {
//隐藏日
((ViewGroup) dp.getDatePicker().getChildAt(0)).getChildAt(2).setVisibility(View.GONE);
if(falg){//年度
//隐藏月
((ViewGroup) dp.getDatePicker().getChildAt(0)).getChildAt(1).setVisibility(View.GONE);
}
} else if (SDKVersion > 14) {
//隐藏日
((ViewGroup) ((ViewGroup) dp.getDatePicker().getChildAt(0)).getChildAt(0)).getChildAt(2).setVisibility(View.GONE);
if(falg){//年度
//隐藏月
((ViewGroup) ((ViewGroup) dp.getDatePicker().getChildAt(0)).getChildAt(0)).getChildAt(1).setVisibility(View.GONE);
}
}
}
etXyLevelDate.setInputType(InputType.TYPE_NULL);
}
return false;
}
};
}

关键在于:

// 隐藏
if (dp != null) {
int SDKVersion = PhoneInfo.getSDKVersionNumber();
if (SDKVersion < 11) {
//隐藏日
((ViewGroup) dp.getDatePicker().getChildAt(0)).getChildAt(2).setVisibility(View.GONE);
if(falg){//年度
//隐藏月
((ViewGroup) dp.getDatePicker().getChildAt(0)).getChildAt(1).setVisibility(View.GONE);
}
} else if (SDKVersion > 14) {
//隐藏日
((ViewGroup) ((ViewGroup) dp.getDatePicker().getChildAt(0)).getChildAt(0)).getChildAt(2).setVisibility(View.GONE);
if(falg){//年度
//隐藏月
((ViewGroup) ((ViewGroup) dp.getDatePicker().getChildAt(0)).getChildAt(0)).getChildAt(1).setVisibility(View.GONE);
}
}
}

0:表示年

1:月

2:日

DatePickerDialog 控制只选择年月或年或月的更多相关文章

  1. easyui datebox 只选择年月

    //将日期输入框变为年月的函数方法    var month=0;      $('#effectiveDate').datebox({        onShowPanel: function () ...

  2. easyui时间框只选择年月

    html: <input type="text" id="datetime" > js: <script type="text/ja ...

  3. Android DatePickerDialog 只选择年月

    //对EditText注册OnTouch事件etSscxNssbDate.setOnTouchListener(selectDateTouchListener); //选择日期 private OnT ...

  4. JavaScript-自制日历控件(只选择年月)

    <style> *{margin: 0px; padding: 0px;} </style> <input type="text" name=&quo ...

  5. jquery-weui picker组件实现只选择年月

    var date = new Date() var month = date.getMonth()+1 //获取当前月份 $('#selectTime').picker({ toolbarTempla ...

  6. bootstrap的datetimepicker控件只选择年月的配置

    <script src="{% static "jquery/jquery-1.11.3.min.js" %}"></script> & ...

  7. 玩转控件:重绘DEVEXPRESS中DateEdit控件 —— 让DateEdit支持只选择年月 (提供源码下载)

      前言 上一篇博文<玩转控件:重绘ComboBox —— 让ComboBox多列显示>中,根据大家的回馈,ComboBox已经支持筛选了,更新见博文最后最后最后面.   奇葩 这两天遇到 ...

  8. 转 EasyUi日期控件datebox设置,只显示年月,也只能选择年月

    1.引入Jquery和easyui,注低版本的Jquery和easy不能使用,这里使用的Jquery是1.8.2easyui是1.6.1.1.easyui下载地址:http://www.jeasyui ...

  9. 自定义一个只显示年月的DatePicker(UIDatePicker无法实现年月显示)

    HooDatePicker 介绍(introduction) ==================================================项目需要一个DatePicker,只显 ...

随机推荐

  1. 常用cl命令参数解释

    紧接前文,第一行cl命令如下: 1> cl /c /IC:\...\include /ZI /nologo- /W3 /WX- /sdl /Od /Oy- /D WIN32 /D _DEBUG ...

  2. MVC 4.0语法 自动分页

    4.0语法中实现自动分页只需要两个方法即可,Skip() ----跳过序列中指定的元素,Take()-----从序列的开头返回指定数量元素. 一般用自动分页都是无刷新的,可以把显示的数据,用局部页面封 ...

  3. 把本地建好的项目提交到git上

    才开始用git来控制项目版本,刚开始时不是很会用,由于公司最近新开个项目,需要我把建好的项目放到git上去,慢慢的摸索,终于有点小小的结果,把一个项目成功提交到git上了,在这里记录下,以免下次忘记, ...

  4. 【80端口占用】win7下80端口被(Pid=4)占用的解决方法

    亲测可用 通过cmd命令查询占用进程的pid netstat -ano 如果要是tomcat等一般程序占用了端口,一般pid比较大,直接找到相应的pid结束掉进程就行啦. 但是如果pid是4,代表sy ...

  5. IIS7.0 Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站

    配置环境 Windows版本:Windows Server 2008 R2 Enterprise Service Pack 1 系统类型: 64 位操作系统 了解HTTPS 为什么需要 HTTPS ? ...

  6. 使用Eclipse生成自动生成apk

    使用Eclipse生成自动生成apk     在eclipse的Preferences -> Android -> Build中有一项“Skip packaging and dexing ...

  7. hdu4893Wow! Such Sequence! (线段树)

    Problem Description Recently, Doge got a funny birthday present from his new friend, Protein Tiger f ...

  8. tmux environment keep

    Shell 下 tmux 不能保持 PATH 变量,解决方法如下: 添加如下配置信息到 ~/.tmux.conf 中即可. set-option -ga update-environment PATH ...

  9. 生成getter()、setter()方法去掉变量前缀

    当定义的变量名有前缀但是不想在生成它的getter()和setter方法的时候让前缀出现,比如今天项目的部分代码: public class Crime { private UUID mId; //标 ...

  10. PartialView 加载Js

    地址记录:http://stackoverflow.com/questions/21186505/including-script-specific-to-an-asp-net-mvc4-view-o ...