`
龙哥IT
  • 浏览: 254625 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

获取日期弹出框

 
阅读更多
DoubleDatePickerDialog.java
public class DoubleDatePickerDialog extends AlertDialog implements
		OnClickListener, OnDateChangedListener {

	private static final String START_YEAR = "start_year";
	private static final String START_MONTH = "start_month";
	private static final String START_DAY = "start_day";

	private final DatePicker mDatePicker_start;
	// private final DatePicker mDatePicker_end;
	private final OnDateSetListener mCallBack;

	/**
	 * The callback used to indicate the user is done filling in the date.
	 */
	public interface OnDateSetListener {

		/**
		 * @param view
		 *            The view associated with this listener.
		 * @param year
		 *            The year that was set.
		 * @param monthOfYear
		 *            The month that was set (0-11) for compatibility with
		 *            {@link java.util.Calendar}.
		 * @param dayOfMonth
		 *            The day of the month that was set.
		 */
		void onDateSet(DatePicker startDatePicker, int startYear,
				int startMonthOfYear, int startDayOfMonth);
	}

	/**
	 * @param context
	 *            The context the dialog is to run in.
	 * @param callBack
	 *            How the parent is notified that the date is set.
	 * @param year
	 *            The initial year of the dialog.
	 * @param monthOfYear
	 *            The initial month of the dialog.
	 * @param dayOfMonth
	 *            The initial day of the dialog.
	 */
	public DoubleDatePickerDialog(Context context, OnDateSetListener callBack,
			int year, int monthOfYear, int dayOfMonth) {
		this(context, 0, callBack, year, monthOfYear, dayOfMonth);
	}

	public DoubleDatePickerDialog(Context context, int theme,
			OnDateSetListener callBack, int year, int monthOfYear,
			int dayOfMonth) {
		this(context, 0, callBack, year, monthOfYear, dayOfMonth, true);
	}

	/**
	 * @param context
	 *            The context the dialog is to run in.
	 * @param theme
	 *            the theme to apply to this dialog
	 * @param callBack
	 *            How the parent is notified that the date is set.
	 * @param year
	 *            The initial year of the dialog.
	 * @param monthOfYear
	 *            The initial month of the dialog.
	 * @param dayOfMonth
	 *            The initial day of the dialog.
	 */
	public DoubleDatePickerDialog(Context context, int theme,
			OnDateSetListener callBack, int year, int monthOfYear,
			int dayOfMonth, boolean isDayVisible) {
		super(context, theme);

		mCallBack = callBack;

		Context themeContext = getContext();
		setButton(BUTTON_POSITIVE, "确 定", this);
		setButton(BUTTON_NEGATIVE, "取 消", this);
		setIcon(0);

		LayoutInflater inflater = (LayoutInflater) themeContext
				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View view = inflater.inflate(R.layout.date_picker_dialog, null);
		setView(view);
		mDatePicker_start = (DatePicker) view
				.findViewById(R.id.datePickerStart);
		mDatePicker_start.init(year, monthOfYear, dayOfMonth, this);
	}

	public void onClick(DialogInterface dialog, int which) {
		// 如果是“取 消”按钮,则返回,如果是“确 定”按钮,则往下执行
		if (which == BUTTON_POSITIVE)
			tryNotifyDateSet();
	}

	@Override
	public void onDateChanged(DatePicker view, int year, int month, int day) {
		if (view.getId() == R.id.datePickerStart)
			mDatePicker_start.init(year, month, day, this);
	}

	/**
	 * 获得开始日期的DatePicker
	 * 
	 * @return The calendar view.
	 */
	public DatePicker getDatePickerStart() {
		return mDatePicker_start;
	}

	/**
	 * Sets the start date.
	 * 
	 * @param year
	 *            The date year.
	 * @param monthOfYear
	 *            The date month.
	 * @param dayOfMonth
	 *            The date day of month.
	 */
	public void updateStartDate(int year, int monthOfYear, int dayOfMonth) {
		mDatePicker_start.updateDate(year, monthOfYear, dayOfMonth);
	}

	private void tryNotifyDateSet() {
		if (mCallBack != null) {
			mDatePicker_start.clearFocus();
			mCallBack.onDateSet(mDatePicker_start, mDatePicker_start.getYear(),
					mDatePicker_start.getMonth(),
					mDatePicker_start.getDayOfMonth());
		}
	}

	@Override
	protected void onStop() {
		super.onStop();
	}

	@Override
	public Bundle onSaveInstanceState() {
		Bundle state = super.onSaveInstanceState();
		state.putInt(START_YEAR, mDatePicker_start.getYear());
		state.putInt(START_MONTH, mDatePicker_start.getMonth());
		state.putInt(START_DAY, mDatePicker_start.getDayOfMonth());
		return state;
	}

	@Override
	public void onRestoreInstanceState(Bundle savedInstanceState) {
		super.onRestoreInstanceState(savedInstanceState);
		int start_year = savedInstanceState.getInt(START_YEAR);
		int start_month = savedInstanceState.getInt(START_MONTH);
		int start_day = savedInstanceState.getInt(START_DAY);
		mDatePicker_start.init(start_year, start_month, start_day, this);
	}
}

 

 

public class MainActivity extends Activity {

	Button btn;
	TextView et;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		btn = (Button) findViewById(R.id.dateBtn);
		et = (TextView) findViewById(R.id.et);

		btn.setOnClickListener(new View.OnClickListener() {
			Calendar c = Calendar.getInstance();

			@Override
			public void onClick(View v) {
				// 最后一个false表示不显示日期,如果要显示日期,最后参数可以是true或者不用输入
				new DoubleDatePickerDialog(MainActivity.this, 0, new DoubleDatePickerDialog.OnDateSetListener() {

					@Override
					public void onDateSet(DatePicker startDatePicker, int startYear, int startMonthOfYear,
							int startDayOfMonth) {
						String textString = String.format("开始时间:%d-%d-%d\n", startYear,
								startMonthOfYear + 1, startDayOfMonth);
						et.setText(textString);
					}
				}, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DATE), false).show();
			}
		});
	}
}

 

 

 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/et"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:cursorVisible="false"
        android:editable="false" />

    <Button
        android:id="@+id/dateBtn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="日期对话框" />

</LinearLayout>

 

date_picker_dialog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:orientation="horizontal"
    android:paddingTop="10dp" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:padding="5dip" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="开始日期" />

        <DatePicker
            android:id="@+id/datePickerStart"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:calendarViewShown="false" />
    </LinearLayout>

    <!-- <ImageView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:src="@drawable/fenge" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:padding="5dip" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="结束日期" />

        <DatePicker
            android:id="@+id/datePickerEnd"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:calendarViewShown="false" />
    </LinearLayout>
 -->
</LinearLayout>

  

分享到:
评论

相关推荐

    uniappDemo(选择日期、评分条、弹出框).zip

    【uniappDemo(选择日期、评分条、弹出框).zip】是一个压缩包,其中包含了一个基于uni-app框架的示例项目,这个项目整合了日期选择器、评分条和弹出框这三个常用的UI组件。uni-app是一个跨端开发框架,它允许开发者...

    android日期选择弹出框

    "android日期选择弹出框"就是一个解决此类需求的解决方案。它使用了一个开源组件,叫做`wheel`,来实现年、月、日的滚动选择,并且能够通过回调将用户选定的日期值返回到应用中。 `wheel`组件是一种常见的UI控件,...

    js弹出日期框js弹出日期框

    3. 弹出框实现:常见的弹出日期框实现方式有两种:一种是创建一个新的HTML元素,如`&lt;div&gt;`,并在需要时将其显示在页面上;另一种是使用浏览器内置的`&lt;input type="date"&gt;`标签,但这种方法的样式和功能可能受到...

    ymprompt消息提示组件4.0【js插件弹出框美化版】

    fixPosition:设定是否弹出框随滚动条一起浮动,保持在屏幕的固定位置,默认为true dragOut:设定是否允许拖出屏幕范围,默认为false。 autoClose:设定用户点击窗口中按钮后自动关闭窗口,默认为true(设定为...

    点击input,弹出日期选择框

    在网页设计和开发中,创建用户友好的交互是至关重要的,而“点击input,弹出日期选择框”正是实现这一目标的一种常见方法。这个功能可以让用户方便地输入或选择日期,提高了数据输入的准确性和效率。下面我们将详细...

    弹出框

    自动完成功能通常会动态地从服务器获取数据,然后实时更新在弹出框中显示的选项。 最后是“WdatePicker.js”,这是一款基于JavaScript的日期选择器插件,它为网页提供了方便的日期选择功能。在弹出框中,日期选择器...

    带时间的日期控件 自动向上或向下弹出 JS

    在实现这种控件时,开发者可能需要使用到JavaScript的一些核心概念,例如事件监听(如点击事件)、DOM操作(如获取元素位置、改变样式)以及可能的CSS(级联样式表)来控制弹出框的样式和动画效果。对于时间的选择,...

    Android仿ios弹出框效果

    本文将深入探讨如何在Android平台上创建一个仿iOS弹出框效果,包括底部弹出的日期选择器和地址选择器。我们将讨论相关的UI组件、布局设计以及事件处理等方面的知识点。 首先,iOS的弹出框效果通常被称为“Action ...

    使用js在网页弹出中文日期框

    3. **弹出框实现**:在HTML5中,`&lt;input type="date"&gt;`会生成一个内置的日期选择器,但如果我们需要更自定义的样式或功能,可以使用模态对话框(modal dialog)来创建一个弹出框。这通常涉及CSS来定义样式,以及...

    一个漂亮的弹出层模态框和对话框

    在网页设计中,弹出层、模态框和对话框是不可或缺的元素,它们用于向用户展示重要信息、获取用户输入或执行特定操作。在这个名为"Ply-master"的项目中,我们可以推测它提供了一个优雅的JavaScript实现,用于创建这些...

    文本框获取焦点弹出下拉框

    标题“文本框获取焦点弹出下拉框”涉及到的是网页交互设计中的一种常见功能,它通常用于实现输入框(input)的自动补全或者下拉选项选择。在Web开发中,这种功能可以极大提升用户体验,让用户能够快速找到并选择所需...

    易语言日期时间框例程源码,易语言日期时间框模块

    5. **月历窗口_组件**和**时间窗口_组件**:这两个组件可能是指在日期时间框中弹出的月历和时间选择窗口,它们提供了更直观的日期和时间选择方式。开发者可以自定义这些窗口的外观和行为,以适应不同的用户界面需求...

    基于jQuery实现弹出框选择生日特效源码.zip

    本资源“基于jQuery实现弹出框选择生日特效源码.zip”提供了一个利用jQuery创建的弹出框功能,用于用户选择生日日期。这种特效常用于注册表单或个人资料编辑页面,提升用户体验。 首先,让我们详细了解一下jQuery的...

    Android 自定义日期选择框

    在Android开发中,自定义日期选择框是一种常见的...通过以上这些步骤,你可以构建出一个功能完备、符合设计要求的自定义日期选择框。在实际开发过程中,可能还需要根据具体需求进行调整和优化,以实现最佳的用户体验。

    一套值得推荐的含日历,弹出框,Ajax表单等JS框架V2.0源码及例子程序

    【标题】中的“一套值得推荐的含日历,弹出框,Ajax表单等JS框架V2.0源码及例子程序”表明这是一套基于JavaScript的开发资源,主要包括日历功能、弹出框组件以及Ajax表单处理的框架。这个框架已经更新到了第二版,...

    IOS应用源码——弹出框显示的Picker control.zip

    这个“IOS应用源码——弹出框显示的Picker control.zip”压缩包提供了一个实例,展示了如何在iOS应用中实现一个以弹出框形式展示的Picker Control。下面将详细介绍相关的知识点。 1. UIPickerView: UIPickerView 是...

    jquery移动端底部弹出时间选择框.rar

    H5小程序难免会用到从底部弹出时间选择框,在这里使用了jquery-weui实现了,店铺选择营业时间的功能。已经做好了时间格式和开始时间与结束时间的对比。注意使用的时候可以任意改动样式,但是jquery-weui自带的样式不...

    js控件大全,消息提示,菜单演示,弹出框,各种特效

    "js控件大全,消息提示,菜单演示,弹出框,各种特效"这个资源集合了一系列常用的JavaScript控件和功能,旨在帮助开发者快速创建功能丰富的Web应用。让我们详细探讨一下其中涉及的知识点。 首先,**消息提示**是...

    vb弹出日期vb弹出日期vb弹出日期vb弹出日期vb弹出日期

    在VB(Visual Basic)编程中,"弹出日期"通常指的是使用对话框让用户选择一个日期的交互功能。VB提供了多种方法来实现这一功能,其中最常用的是`InputBox`和`DateTimePicker`控件。在这里,我们将深入探讨这两个方法...

Global site tag (gtag.js) - Google Analytics