DatePicker在studio中样式改变,显示年月,隐藏日的时候同时出现崩溃

@SuppressLint("SimpleDateFormat")
private void date(){
    final AlertDialog dlg = new AlertDialog.Builder(this).create();
    dlg.show();
    Window window = dlg.getWindow();
    // *** 主要就是在这里实现这种效果的.
    // 设置窗口的内容页面,shrew_exit_dialog.xml文件中定义view内容
    window.setContentView(R.layout.datepicker_layout);
    // 为确认按钮添加事件,执行退出应用操作

    DatePicker dp = (DatePicker) window.findViewById(R.id.dpPicker);
    final Calendar calendar = Calendar.getInstance();
    final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
    // 隐藏日期View
    ((ViewGroup) ((ViewGroup) dp.getChildAt(0)).getChildAt(0)).getChildAt(2).setVisibility(View.GONE);
    dp.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH),
            new DatePicker.OnDateChangedListener() {

                @Override
                public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    // 获取一个日历对象,并初始化为当前选中的时间
                    calendar.set(year, monthOfYear, dayOfMonth);

                }
            });

    RelativeLayout ok = (RelativeLayout) window.findViewById(R.id.YES);
    ok.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            System.out.println("======date====" + format.format(calendar.getTime()));


            if (flag == 0) {
                 mStartDateStr = format.format(calendar.getTime());
                mStartTimeTv.setText("开始时间:" + mStartDateStr);
            } else {
                 mEndDateStr = format.format(calendar.getTime());
                mEndTimeTv.setText("结束时间:" + mEndDateStr);
            }


            dlg.cancel();
        }
    });
红色标记部分报错
解决办法:
1.styles.xml中添加代码:
<style name="MyDatePicker" parent="@android:style/Theme.Holo.Light"></style>
2.manifast中引用:
android:theme="@style/MyDatePicker"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值