选择时间对话框,在点击对话框外面的时候对话框不会自动关闭
public void showTimeDialog() { View view = View.inflate(this, R.layout.dialog_datepicker, null); final TimePicker timePicker = (TimePicker) view.findViewById(R.id.timepicker_appoint_detail_activity); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(System.currentTimeMillis()); timePicker.setIs24HourView(true);//设置为24小时制 timePicker.setCurrentMinute(Calendar.MINUTE); AlertDialog dialog = new AlertDialog.Builder(AppointDetailActivity.this).setTitle("请选择预约时间").setView(view).setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { StringBuffer sb = new StringBuffer(); if (timePicker.getCurrentHour() < 10) { sb.append("0").append(timePicker.getCurrentHour()); if (timePicker.getCurrentMinute() < 10) { sb.append(":").append("0").append(timePicker.getCurrentMinute()); } else { sb.append(":").append(timePicker.getCurrentMinute()); } } else if (timePicker.getCurrentMinute() < 10) { sb.append(timePicker.getCurrentHour()).append(":").append("0").append(timePicker.getCurrentMinute()); } else { sb.append(timePicker.getCurrentHour()).append(":").append(timePicker.getCurrentMinute()); } appointTimeBu.setText(sb.toString()); } }).setNegativeButton("取消", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int arg1) { dialog.cancel(); } }).create(); dialog.setCanceledOnTouchOutside(false);//设置此行的目的是在点击本对话框以外的内容时,该对话框不会自动关闭 dialog.show(); }
R.layout.dialog_datepicker//布局文件,用来展示对话框页面 <?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:orientation="vertical" > <TimePicker android:id="@+id/timepicker_appoint_detail_activity" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> </LinearLayout>