• DatePickerDialog 控制只选择年月或年或月


    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:日

  • 相关阅读:
    微信公众平台开发最佳实践
    微信公众平台运营规范
    微信智能开放平台
    微信公众平台模版消息
    Ace
    ZigBee介绍
    基于微信控制的智能家居产品
    微信商业模式的挑战点
    微信公众平台开发接口PHP SDK完整版
    微信公众平台开发(84) 小i机器人
  • 原文地址:https://www.cnblogs.com/yshyee/p/4361822.html
Copyright © 2020-2023  润新知