`
lucky1603
  • 浏览: 7604 次
社区版块
存档分类
最新评论

EditText绑定日期控件DatePicker

阅读更多

开发安卓app的时候,有时候需要给EditText绑定日期控件DatePicker,网络上有一篇文章就是讲如何绑定的,网络上搜索到的基本上都是这篇文章,被转来转去,代码确实可以用,但是原作者并没有写得很详细,然后还有点小问题,我在它的基础上稍微修改了下:

private int mYear;
private int mMonth;
private int mDay;
	
private EditText lzdate;
private EditText sxdate;

private int timeFlag=0;

              。
              。
              。
			
  lzdate = (EditText) findViewById(R.id.lzdate);
  sxdate = (EditText) findViewById(R.id.sxdate);

/**
			 * 点击EditText弹出日期选择框
			 */
			lzdate.setOnClickListener(new OnClickListener() {
			    public void onClick(View v) {
			        timeFlag = 0;
			        showDialog(0);
			    }
			});
			 
			sxdate.setOnClickListener(new OnClickListener() {
			    public void onClick(View v) {
			        timeFlag = 1;
			        showDialog(1);
			    }          
			});
			 
			lzdate.setOnFocusChangeListener(new OnFocusChangeListener() {
			    public void onFocusChange(View v, boolean hasFocus) {
			        if (hasFocus == true) {
			            timeFlag = 0;
			            showDialog(0); 
			            hideIM(v);
			        }
			    }
			});
			 
			sxdate.setOnFocusChangeListener(new OnFocusChangeListener() {
			    public void onFocusChange(View v, boolean hasFocus) {
			        if (hasFocus == true) {
			            timeFlag = 1;
			            showDialog(1); 
			            hideIM(v);
			        }
			    }
			});

	private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
		public void onDateSet(DatePicker view, int year, int monthOfYear,
				int dayOfMonth) {
			mYear = year;
			String mm;
			String dd;
			if (monthOfYear <= 9) {
				mMonth = monthOfYear + 1;
				mm = "0" + mMonth;
			} else {
				mMonth = monthOfYear + 1;
				mm = String.valueOf(mMonth);
			}
			if (dayOfMonth <= 9) {
				mDay = dayOfMonth;
				dd = "0" + mDay;
			} else {
				mDay = dayOfMonth;
				dd = String.valueOf(mDay);
			}
			mDay = dayOfMonth;
			if (timeFlag == 0) {
				lzdate.setText(String.valueOf(mYear) + "-" + mm + "-"+ dd);
			} else {
				sxdate.setText(String.valueOf(mYear) + "-" + mm + "-" + dd);
			}
		}
	};

     
	protected Dialog onCreateDialog(int id) {
	        //原作者的代码中没有下面的四行,这样会造成 在第一个EditText选择了日期后,再给另外一个EditText选择日期时,会发生错误
		Calendar c = Calendar.getInstance();
		mYear=c.get(Calendar.YEAR);
		mMonth=c.get(Calendar.MONTH);
		mDay=c.get(Calendar.DAY_OF_MONTH);
		
		switch (id) {
		case 0:
			return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,mDay);
		case 1:
			return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,mDay);
		}
		return null;
	}

	// 隐藏手机键盘
	private void hideIM(View edt) {
		try {
			InputMethodManager im = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
			IBinder windowToken = edt.getWindowToken();
			if (windowToken != null) {
				im.hideSoftInputFromWindow(windowToken, 0);
			}
		} catch (Exception e) {

		}
	}

 

分享到:
评论

相关推荐

    Android DataBinding的官方双向绑定示例

    Android DataBinding 还支持多种控件的双向绑定,例如 AbsListView、CalendarView、CompoundButton、DatePicker、NumberPicker、RadioGroup、RatingBar、SeekBar、TabHost、TextView、TimePicker 等。这些控件可以...

    一个demo让你学会所有ui控件

    这个项目很可能是为了展示各种Android UI控件的用法而设计的,包括按钮(Button)、文本输入框(EditText)、单选按钮(RadioButton)、复选框(CheckBox)、下拉列表(Spinner)、图片按钮(ImageButton)、进度条(ProgressBar)...

    Android 所有控件的使用

    10. **日期/时间选择器(DatePicker/TimePicker)**:这两个控件用于让用户选择日期或时间,通常在对话框中使用。 11. **视图组(ViewGroup)**:如LinearLayout、RelativeLayout、ConstraintLayout等,用于组织其他...

    android控件

    EditText控件允许用户输入文本,常用于表单或搜索框。通过`&lt;EditText&gt;`标签定义,`android:hint`属性提供提示文本,`android:inputType`可设置输入类型,如文本、密码、电话号码等。 三、单选按钮(RadioButton) ...

    安卓控件集合

    10. **DatePicker**和**TimePicker**:分别用于选择日期和时间,常用于设置日期或时间相关的功能。 在学习过程中,`LyoutDemo`可能包含了这些控件的示例布局文件,用于演示如何在XML布局文件中定义控件以及它们的...

    一个让你掌握android所有控件的demo

    3. **高级控件**:除了基本控件外,还有诸如Spinner(下拉列表)、DatePicker(日期选择器)、TimePicker(时间选择器)、GridView(网格视图)、ListView(列表视图)等更复杂的控件。这些控件为用户提供更多的交互...

    android常用控件demo

    9. **DatePicker** 和 **TimePicker**:这两个控件用于选择日期和时间,常用于设置提醒或创建事件。 10. **GridLayout**、**LinearLayout** 和 **RelativeLayout**:这些是布局管理器,用于组织和定位其他控件。...

    Android 中常见控件参考手册-中文版

    18. **DatePicker日期**: - DatePicker提供日期选择功能。 - 类层次关系:通常是一个Dialog。 - 常用方法:设置和获取日期。 - 使用:选择日期,通常用于日期选择器。 19. **TimePicker时间选择器**: - ...

    安卓常用控件例子集合

    10. **DatePicker** 和 **TimePicker**:日期和时间选择器,用于让用户选择日期或时间。示例可能包含如何获取和设置选择的值。 11. **Switch**:开关控件,与ToggleButton类似,但外观更现代。示例会展示如何与...

    android 基本控件使用

    10. **DatePicker** 和 **TimePicker**:日期选择器和时间选择器,用于让用户选择日期或时间。 在实际开发中,开发者还会使用到诸如GridLayout、LinearLayout、RelativeLayout等布局管理器来组织这些控件。此外,...

    android 所有的基本控件使用例子

    10. **DatePicker**和**TimePicker**:用于选择日期和时间,常见于设置界面。你需要知道如何设置初始值、获取用户选择的日期和时间。 11. **GridLayout**、**LinearLayout**、**RelativeLayout**和**...

    Android 所有的控件使用代码

    以上只是部分Android控件的使用示例,实际开发中还有更多如`SeekBar`、`DatePicker`、`TimePicker`等控件,它们都有各自的使用方法和场景。通过不断的实践和学习,你可以熟练掌握所有控件的使用,构建出功能丰富的...

    关于android所有控件的示范

    DatePicker和TimePicker则用于选取日期和时间,常见于需要设置日期和时间的场景。 此外,ListView和RecyclerView是常用的列表视图控件。ListView可以显示一列可滚动的数据项,而RecyclerView是更现代且高效的版本,...

    疯狂Android控件集合

    9. **日期/时间选择器(DatePicker/TimePicker)**:提供用户选择日期和时间的界面,常用于设置提醒或预约等场景。 10. **对话框(Dialog/FloatingActionButton)**:Dialog用于弹出式交互,通常包含确认、取消等选项;...

    Android图形界面基本UI控件示例

    Android提供了DatePicker和TimePicker两个控件,分别用于选择日期和时间。它们通常会以对话框的形式弹出,用户可以选择后关闭。 以上是Android基本UI控件的简要介绍。在实际开发中,开发者还需要了解如何布局这些...

    android控件大全

    DatePicker和TimePicker分别用于选择日期和时间,通常在需要用户输入日期或时间的场景中使用。 ProgressBar和SeekBar表示进度,前者是静态的,后者允许用户手动调整。RatingBar用于让用户对内容进行评级。 开关...

    android常用UI控件的使用例子

    - `DatePicker`让用户选择日期,`TimePicker`则用于选择时间。 11. **浮动动作按钮(FloatingActionButton)** - `FloatingActionButton`是 Material Design 风格的设计,常作为主要操作的触发器。 12. **通知栏...

    常用的控件

    1. 输入控件:这类控件允许用户输入数据,如文本框(TextBox)、密码框(PasswordBox)、日期选择器(DatePicker)和数字输入框(NumericUpDown)。它们在表单或网页中用于收集用户信息。 2. 显示控件:显示控件...

    Android 常用系统控件 大合集源码

    - Android提供了DatePicker和TimePicker供用户选择日期和时间。源码中可能涉及到自定义对话框和监听事件的处理。 11. **滑动视图(SwipeRefreshLayout)** - 用于添加下拉刷新功能,常见于列表或网格视图。源码可能...

    学习控件使用后的练手小程

    开发者可能会使用到`&lt;TextView&gt;`(用于显示文本)、`&lt;EditText&gt;`(用于用户输入)、`&lt;Button&gt;`(用于触发操作)、`&lt;ImageView&gt;`(显示图片)和`&lt;DatePicker&gt;`或`&lt;TimePicker&gt;`(用于选择日期和时间)等控件。...

Global site tag (gtag.js) - Google Analytics