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

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中,添加语句

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

暂无评论
  • 1:请一针见血的评论。
  • 2:评论需要审核通过后才能显示。
  • 3:评论字数限制在1000字以内。
  • 当前字数:0
热门文章
推荐文章
随机文章
关于本站 - 广告服务 - 版权声明 - 联系我们 - 友情链接 - 网站地图 - 帮助中心