@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"