当前位置: 代码迷 >> Android >> Android开发技能二-避免在EditText中验证日期
  详细解决方案

Android开发技能二-避免在EditText中验证日期

热度:67   发布时间:2016-04-28 00:24:45.0
Android开发技巧二--避免在EditText中验证日期

开发者都知道验证表单里的数据是令人厌烦而且容易出错的,日期输入框的验证也是如此。我们可以开发出一个外观看起来与EditText相同Button,点击该Button后,会显示一个DatePicker控件。

要实现上面的想法,需要将Button控件的默认背景改成EditText的背景。

看一下main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"     android:orientation="vertical">    <Button        android:id="@+id/btn_date"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center_horizontal"        android:background="@android:drawable/edit_text"        android:gravity="center"        android:text="选择生日" > <!--  android:background="@android:drawable/edit_text"背景设置成EditText样式 -->    </Button></LinearLayout>

然后我们看一下MainActivity.java文件:

package com.yayun.edittextdatedemo;import android.app.Activity;import android.app.DatePickerDialog;import android.app.Dialog;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.DatePicker;public class MainActivity extends Activity {private Button mButton;static final int DATE_DIALOG_ID=0;private int mYear;private int mMonth;private int mDay;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		mButton=(Button) findViewById(R.id.btn_date);		mButton.setOnClickListener(new OnClickListener() {						@Override			public void onClick(View arg0) { 				showDialog(DATE_DIALOG_ID);//弹出对话框			}		});		}	private DatePickerDialog.OnDateSetListener mDateSetListener=new DatePickerDialog.OnDateSetListener() {//监听日期设置事件				@Override		public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {			mYear=year;			mMonth=monthOfYear;			mDay=dayOfMonth;			updateDisplay();					}		private void updateDisplay() {//设置显示		 mButton.setText(new StringBuilder().append(mYear).append("-").append(mMonth+1).append("-").append(mDay));					}	};	protected Dialog onCreateDialog(int id){		switch (id) {		case DATE_DIALOG_ID:			return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);					default:			break;		}		return null;			}}

运行实例:




总结

1.android:background="@android:drawable/edit_text" 将Button显示成EditText样式;

2.注意创建日期对话框的方法。







  相关解决方案