关闭

Android手机开发:EditText+DatePicker带日期选择器的编辑框

标签: android手机exceptionstringdialognull
14186人阅读 评论(5) 收藏 举报
分类:

1. 声明EditText变量,并关联到相应控件上

private EditText sellStartTime;
private EditText sellEndTime;
sellStartTime = (EditText)findViewById(R.id.editSellStartTime);
sellEndTime = (EditText)findViewById(R.id.editSellEndTime);

2. 日期选择器函数

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) {
                    	sellStartTime.setText(String.valueOf(mYear)+"-"+mm+"-"+dd);
                    }else {
                    	sellEndTime.setText(String.valueOf(mYear)+"-"+mm+"-"+dd);
                    }
                }			
            };
   
    protected Dialog onCreateDialog(int id) {
    	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) {
           
         }
     }

3. 注册监听器,当EditText获得焦点时,或者被点击时,打开日期选择器

                sellStartTime.setOnClickListener(new OnClickListener(){
	                public void onClick(View v) {
	        	        timeFlag = 0;
	        	        showDialog(0);
			}
	        });
		sellEndTime.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				timeFlag = 1;
				showDialog(1);
			}			
		});
		sellStartTime.setOnFocusChangeListener(new OnFocusChangeListener() {
			public void onFocusChange(View v, boolean hasFocus) {
				if (hasFocus == true) {
					timeFlag = 0;
					hideIM(v);
					showDialog(0);  
				}
			}
		});

		sellEndTime.setOnFocusChangeListener(new OnFocusChangeListener() {
			public void onFocusChange(View v, boolean hasFocus) {
				if (hasFocus == true) {
					timeFlag = 1;
					hideIM(v);
					showDialog(1);  
				}
			}
		});

4. 在包含EditText的LinearLayout中,添加语句

android:focusable="true"  android:focusableInTouchMode="true"

这句话,是为了防止EditText自动获取焦点,触发日期选择器。


1
1
查看评论

EditText+DatePicker带日期选择器的编辑框

终于闲了下来,可以整理记录下一些较为简单的代码片段EditText+DatePicker带日期选择器的编辑框1. 声明EditText变量,并关联到相应控件上private EditText sellStartTime; private EditText sellEndTime;sellStartT...
  • qq_15700209
  • qq_15700209
  • 2017-03-28 09:06
  • 104

Android 带编辑框的弹出框

textView2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { final EditText inputServer = new EditTex...
  • u010002184
  • u010002184
  • 2016-05-30 11:12
  • 1926

安卓自定义控件之带有自定义下划线的编辑框(已经添加过图片)

今天项目有个需求,就是在编辑栏的左边添加一张图片,但是我不是很想使用布局嵌套的方式来进行,所有我就干脆自定义了一个控件来进行显示。效果图:代码如下: import android.content.Context; import android.graphics.Canvas; import andr...
  • cmwly
  • cmwly
  • 2016-08-02 16:39
  • 1048

android带删除按钮的编辑框

DeletableEditText.javapublic class DeletableEditText extends EditText { private Drawable mRightDrawable; private boolean isHasFocus; public...
  • JACKLIAO1
  • JACKLIAO1
  • 2015-07-31 17:12
  • 767

点击EditText 弹出日期选择器DatePickerDialog

android 点击EditText 弹出日期选择器DatePickerDialog Android手机开发:EditText+DatePicker带日期选择器的编辑框 关于android:focusable属性在一些需要注册的项目中我们可能需要用户填写生日等其他的日期格式的数据,这时候选择Da...
  • xx326664162
  • xx326664162
  • 2016-12-02 16:29
  • 3435

Android定制控件:带图标的TextView和可编辑文本框(附项目源码)

楼主正在学习移动开发,今天老师教授的是定制控件:带图标的
  • u013925880
  • u013925880
  • 2014-09-23 21:16
  • 2325

Android带清除功能的编辑框(ClearEditText)

在Android开发中,EditText控件是最基本的控件之一。最近按照项目需求要求做一个EditText控件,带有清空功能的控件,比如在登录页面,帐号和密码输入框中,输入后发现错误,需要一个一个删除,这时候添加一个清除功能的按钮图标就很有必要了。好了,功能描述就到这里,下面开始贴效果图和代码(在小...
  • lplj717
  • lplj717
  • 2016-08-01 15:32
  • 1902

AndroidIOS风格底部选择器(支持时间,日期,自定义)

上周项目比较忙,所以没更今天给大家带来一组选择器的福利。本文Github代码链接 https://github.com/AndroidMsky/AndoirdIOSPicker 先上图吧:这是笔者最近一个项目一直再用的一个选择器库,自己也在其中做了修改,并决定持续维护下去。先看使用方法:日期选择:p...
  • AndroidMsky
  • AndroidMsky
  • 2016-11-23 11:44
  • 8232

Android 日期选择器隐藏年,月,日

业务场景如下:类中有一个显示 yyyy-mm时间格式的组件。当点击弹出框,弹出隐藏日的时间选择器,当选择时候 可以对组件重新复制,弹出框显示默认为上一次选择的日期。确定的时候,选择的时间不能大于当前时间。 源码如下: package net.demo.shijianxuanze; import ...
  • a872822645
  • a872822645
  • 2016-04-06 11:15
  • 3058

android 带EditView(编辑框)的AlertDialog(对话框)及获取输入内容

final EditText et = new EditText(this); new AlertDialog.Builder(this).setTitle("搜索") .setIcon(android.R.drawable.ic_dialog_info) .se...
  • yuanbohx
  • yuanbohx
  • 2014-03-27 17:23
  • 34751
    个人资料
    • 访问:604436次
    • 积分:7752
    • 等级:
    • 排名:第3261名
    • 原创:192篇
    • 转载:6篇
    • 译文:0篇
    • 评论:99条
    博客专栏
    文章分类
    最新评论