80,350
社区成员
发帖
与我相关
我的任务
分享
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_ffffff_corners"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical" >
<TextView
android:id="@+id/txtDateTime"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="12dip"
android:layout_marginTop="12dip"
android:gravity="center"
android:text="@string/selectDate"
android:textColor="#ff6160"
android:textSize="15sp" />
<View
android:layout_width="fill_parent"
android:layout_height="1px"
android:background="@color/Cc6c6c6" />
<DatePicker
android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:calendarViewShown="false" />
<TimePicker
android:id="@+id/timePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
<View
android:layout_width="fill_parent"
android:layout_height="1px"
android:background="@color/Cc6c6c6" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="48dip"
android:paddingBottom="7dip" >
<Button
android:id="@+id/btnCancel"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/item_clicked"
android:text="@string/cancel"
android:textColor="@color/C18B4ED"
android:textSize="15sp" />
<View
android:layout_width="0.5dip"
android:layout_height="fill_parent"
android:background="@color/Cc6c6c6" />
<Button
android:id="@+id/btnConfirm"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/item_clicked"
android:text="确定"
android:textColor="@color/C18B4ED"
android:textSize="15sp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
/**
* 日期时间选择框框
*
* @param defDate
* 默认显示时间
* @param minDate
* 最小时间限制
* @param maxDate
* 最大时间限制
* @param activity
* 容器
* @param listener
* 选完时间后的回调
* @param title
* 标题
* @throws Exception
*/
public static void showDateTime(Date defDate, final Date minDate, final Date maxDate, final AbstractActivity activity,
final DialogCloseListener listener, final String title) throws Exception {
View viewDialog = activity.getLayoutInflater().inflate(R.layout.dialog_datetime, null);
final DatePicker datePicker = (DatePicker) viewDialog.findViewById(R.id.datePicker);
final TimePicker timePicker = (TimePicker) viewDialog.findViewById(R.id.timePicker);
final TextView txtDateTime = (TextView) viewDialog.findViewById(R.id.txtDateTime);
txtDateTime.setText("请设置" + title);
final Calendar calendar = Calendar.getInstance();
SimpleDateFormat format = DateUtil.formatDate();
if (null != defDate) {
calendar.setTime(defDate);
}
int year = calendar.get(Calendar.YEAR);
int monthOfYear = calendar.get(Calendar.MONTH);
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
datePicker.init(year, monthOfYear, dayOfMonth, new OnDateChangedListener() {
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, monthOfYear);
calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
txtDateTime.setText(title + ":" + DateUtil.formatDateTimeJieStr(calendar.getTime()));
}
});
if (null != minDate) {
datePicker.setMinDate(format.parse(format.format(minDate)).getTime());
}
if (null != maxDate) {
datePicker.setMaxDate(format.parse(format.format(maxDate)).getTime());
}
timePicker.setIs24HourView(true);
timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY));
timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE));
timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
txtDateTime.setText(title + ":" + DateUtil.formatDateTimeJieStr(calendar.getTime()));
if (null != minDate && DateUtil.getDateDiff(calendar.getTime(), minDate) > 0) {
resetDate(minDate);
}
if (null != maxDate && DateUtil.getDateDiff(maxDate, calendar.getTime()) > 0) {
resetDate(maxDate);
}
}
private void resetDate(Date date) {
calendar.setTime(date);
timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY));
timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE));
}
});
viewDialog.findViewById(R.id.btnCancel).setOnClickListener(new OnClickListener() {
public void onClick(View view) {
closeDialog();
}
});
viewDialog.findViewById(R.id.btnConfirm).setOnClickListener(new OnClickListener() {
public void onClick(View view) {
closeDialog();
if (null != listener) {
listener.onClose(ToolUtil.createMap(new String[] { "date" }, new Object[] { calendar.getTime() }));
}
}
});
int width = LjhooUtil.size[0].multiply(BigDecimal.valueOf(0.9)).intValue();
dialog = new Dialog(activity, R.style.dialog);
dialog.setContentView(viewDialog, new LayoutParams(width, LayoutParams.WRAP_CONTENT));
dialog.setCanceledOnTouchOutside(true);
dialog.show();
}