类android.app.DatePickerDialog.OnDateSetListener源码实例Demo

下面列出了怎么用android.app.DatePickerDialog.OnDateSetListener的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: quickhybrid-android   文件: DialogUtil.java
/**
 * 日期和时间选择对话框,选选择日期后选择时间
 *
 * @param con      上下文
 * @param title1   日期选择标题
 * @param title2   事件选择标题
 * @param calendar 默认日期
 * @param listener 时间选择事件
 */
public static void pickDateTime(final Context con, String title1, final String title2, final Calendar calendar, final OnTimeSetListener listener) {
    // 增加判断,解决4.X系统可能存在的弹出多个时间选择器的问题
    final boolean[] isShowTime = {false};
    pickDate(con, title1, calendar, new OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
            calendar.set(year, month, dayOfMonth);
            if (!isShowTime[0]) {
                isShowTime[0] = true;
                pickTime(con, title2, calendar, listener);
            }
        }
    });
}
 
源代码2 项目: quickhybrid-android   文件: DialogUtil.java
/**
 * 年月选择对话框
 *
 * @param con
 * @param title
 * @param calendar
 * @param listener
 */
public static void pickMonth(Context con, String title, Calendar calendar, final OnDateSetListener listener) {
    LinearLayout ll = new LinearLayout(con);
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    ll.setLayoutParams(layoutParams);
    ll.setOrientation(LinearLayout.VERTICAL);
    //添加一条线
    LinearLayout line = new LinearLayout(con);
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 1);
    line.setBackgroundColor(con.getResources().getColor(R.color.line));
    line.setLayoutParams(lp);
    ll.addView(line);
    //添加选择器控件
    final DatePicker datePicker = new DatePicker(con, null, themeId);
    datePicker.setLayoutParams(layoutParams);
    datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), null);
    datePicker.setCalendarViewShown(false);
    ll.addView(datePicker);
    //初始化对话框
    QuickDialog.Builder builder = new QuickDialog.Builder(con);
    builder.setContentView(ll);
    builder.setTitle(title);
    builder.setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
            listener.onDateSet(datePicker, datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth());
        }
    });
    builder.create().show();
}
 
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
		int dayOfMonth) {

	((OnDateSetListener) getActivity()).onDateSet(view, year,
			monthOfYear, dayOfMonth);

}
 
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
                      int dayOfMonth) {

    ((OnDateSetListener) getActivity()).onDateSet(view, year,
            monthOfYear, dayOfMonth);
}
 
void setOnDateSetListener(@Nullable OnDateSetListener onDateSetListener) {
  mOnDateSetListener = onDateSetListener;
}
 
static Dialog createDialog(
    Bundle args, Context activityContext, @Nullable OnDateSetListener onDateSetListener) {
  final Calendar c = Calendar.getInstance();
  if (args != null && args.containsKey(DatePickerDialogModule.ARG_DATE)) {
    c.setTimeInMillis(args.getLong(DatePickerDialogModule.ARG_DATE));
  }
  final int year = c.get(Calendar.YEAR);
  final int month = c.get(Calendar.MONTH);
  final int day = c.get(Calendar.DAY_OF_MONTH);

  DatePickerMode mode = DatePickerMode.DEFAULT;
  if (args != null && args.getString(DatePickerDialogModule.ARG_MODE, null) != null) {
    mode = DatePickerMode.valueOf(args.getString(DatePickerDialogModule.ARG_MODE).toUpperCase(Locale.US));
  }

  DatePickerDialog dialog = null;

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    switch (mode) {
      case CALENDAR:
        dialog = new DismissableDatePickerDialog(activityContext,
          activityContext.getResources().getIdentifier("CalendarDatePickerDialog", "style", activityContext.getPackageName()),
          onDateSetListener, year, month, day);
        break;
      case SPINNER:
        dialog = new DismissableDatePickerDialog(activityContext,
          activityContext.getResources().getIdentifier("SpinnerDatePickerDialog", "style", activityContext.getPackageName()),
          onDateSetListener, year, month, day);
        break;
      case DEFAULT:
        dialog = new DismissableDatePickerDialog(activityContext, onDateSetListener, year, month, day);
        break;
    }
  } else {
    dialog = new DismissableDatePickerDialog(activityContext, onDateSetListener, year, month, day);

    switch (mode) {
      case CALENDAR:
        dialog.getDatePicker().setCalendarViewShown(true);
        dialog.getDatePicker().setSpinnersShown(false);
        break;
      case SPINNER:
        dialog.getDatePicker().setCalendarViewShown(false);
        break;
    }
  }

  final DatePicker datePicker = dialog.getDatePicker();

  if (args != null && args.containsKey(DatePickerDialogModule.ARG_MINDATE)) {
    // Set minDate to the beginning of the day. We need this because of clowniness in datepicker
    // that causes it to throw an exception if minDate is greater than the internal timestamp
    // that it generates from the y/m/d passed in the constructor.
    c.setTimeInMillis(args.getLong(DatePickerDialogModule.ARG_MINDATE));
    c.set(Calendar.HOUR_OF_DAY, 0);
    c.set(Calendar.MINUTE, 0);
    c.set(Calendar.SECOND, 0);
    c.set(Calendar.MILLISECOND, 0);
    datePicker.setMinDate(c.getTimeInMillis());
  } else {
    // This is to work around a bug in DatePickerDialog where it doesn't display a title showing
    // the date under certain conditions.
    datePicker.setMinDate(DEFAULT_MIN_DATE);
  }
  if (args != null && args.containsKey(DatePickerDialogModule.ARG_MAXDATE)) {
    // Set maxDate to the end of the day, same reason as for minDate.
    c.setTimeInMillis(args.getLong(DatePickerDialogModule.ARG_MAXDATE));
    c.set(Calendar.HOUR_OF_DAY, 23);
    c.set(Calendar.MINUTE, 59);
    c.set(Calendar.SECOND, 59);
    c.set(Calendar.MILLISECOND, 999);
    datePicker.setMaxDate(c.getTimeInMillis());
  }

  return dialog;
}
 
void setOnDateSetListener(@Nullable OnDateSetListener onDateSetListener) {
  mOnDateSetListener = onDateSetListener;
}
 
源代码8 项目: quickhybrid-android   文件: DialogUtil.java
public static void pickDate(Context con, String title, OnDateSetListener listener) {
    Calendar calendar = Calendar.getInstance();
    pickDate(con, title, calendar, listener);
}
 
源代码9 项目: quickhybrid-android   文件: DialogUtil.java
public static void pickDate(Context con, OnDateSetListener listener) {
    pickDate(con, con.getString(R.string.pick_date), listener);
}
 
源代码10 项目: quickhybrid-android   文件: DialogUtil.java
public static void pickDate(Context con, Calendar calendar, OnDateSetListener listener) {
    pickDate(con, con.getString(R.string.pick_date), calendar, listener);
}
 
源代码11 项目: quickhybrid-android   文件: DialogUtil.java
public static void pickMonth(Context con, Calendar calendar, OnDateSetListener listener) {
    pickMonth(con, "", calendar, listener);
}
 
源代码12 项目: quickhybrid-android   文件: DialogUtil.java
public static void pickMonth(Context con, OnDateSetListener listener) {
    Calendar calendar = Calendar.getInstance();
    pickMonth(con, calendar, listener);
}
 
源代码13 项目: Huochexing12306   文件: AddInfoAty.java
@Override
public void onClick(View v) {
	Intent intent1 = new Intent(AddInfoAty.this, SelectAty.class);
	intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // 不加此标志StationAty有时执行两次finish()才会返回。
	intent1.putExtra(SelectAty.SEARCH_TYPE, SelectAty.SEARCH_STATION);
	switch (v.getId()) {
	case R.id.from:
		startActivityForResult(intent1, REQUEST_FROM_STATION);
		break;
	case R.id.to:
		startActivityForResult(intent1, REQUEST_TO_STATION);
		break;
	case R.id.trainNum:
		if (btnFrom.getText().length() == 0){
			showMsg("请先选择出发地" + SF.TIP);
		}else if (btnTo.getText().length() == 0){
			showMsg("请先选择目的地" + SF.TIP);
		}else if (!HttpUtil.isNetworkConnected(AddInfoAty.this)){
			showMsg("无网络,无法取得车次列表" + SF.NO_NETWORK);
		}else{
			intDataSource = DATA_FROM_MANUAL_REQUEST;
			getTrains();
		}
		break;
	case R.id.btnDate:
		new DatePickerDialog(this, new OnDateSetListener() {

			@Override
			public void onDateSet(DatePicker view, int year,
					int monthOfYear, int dayOfMonth) {
				String tempDate = year + "-" + (monthOfYear + 1) + "-"
						+ dayOfMonth;
				try {
					Date date = TimeUtil.getDFormat().parse(tempDate);
					String preDate = intYear + "-" + (intMonth + 1) + "-"
							+ (intDay-1);
					if (tempDate.compareTo(preDate)<0) {
						showMsg("最早可设置前一天以内的日期" + SF.FAIL);
					} else {
						tempDate = TimeUtil.getDFormat().format(date);
						etDate.setText(tempDate + "  "
								+ TimeUtil.getWeek(tempDate));
						etDate.setTag(tempDate);
					}
				} catch (ParseException e) {
					e.printStackTrace();
				}
			}
		}, intYear, intMonth, intDay).show();
		break;
	case R.id.ok:
		addTravel();
		break;
	}
}
 
public void setListener(OnDateSetListener listener) {
    mListener = listener;
}
 
源代码15 项目: quickhybrid-android   文件: DialogUtil.java
/**
 * 日期选择对话框
 *
 * @param con      上下文
 * @param title    标题
 * @param calendar 日期
 * @param listener 选择事件
 */
public static void pickDate(Context con, String title, Calendar calendar, OnDateSetListener listener) {
    pickMonth(con, title, calendar, listener);
}
 
 类所在包
 同包方法