安卓开发中,经常会使用到时间对话框。通常都是在一个EditText中选择日期。下面我们一起学习下时间对话框的使用方法。
1.首先,自己在对应的XML文件中设置两个控件,一个TextView,一个EditText。在activity中编写对EditText的操作。
2.声明变量(年月日)以及txtTime(EditText控件,用来显示时间)并相应的对其初始化。
TextView tvInTime; EditText txtInTime; // 年月日 private int mYear; private int mMonth; private int mDay;
tvInTime =(TextView) findViewById(R.id.tvInTime); txtInTime = (EditText) findViewById(R.id.txtInTime);
3.为时间文本框设置点击响应事件
// 为时间文本框设置单击监听事件 txtInTime.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 显示日期选择对话框 showDialog(DATE_DIALOG_ID); } });
4.初始化日历对象,并且显示系统当前时间。
// 初始化Calendar日历对象 final Calendar c = Calendar.getInstance(); mYear = c.get(Calendar.YEAR);// 获取年份 mMonth = c.get(Calendar.MONTH);// 获取月份 mDay = c.get(Calendar.DAY_OF_MONTH);// 获取天数 // 显示当前系统时间 updateDisplay();
5.自定义方法显示时间。
// 使用OnDateSetListener监听器设置系统时间对话框 private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { mYear = year;// 为年份赋值 mMonth = monthOfYear;// 为月份赋值 mDay = dayOfMonth;// 为天赋值 updateDisplay();// 显示设置的日期 } }; /** 自定义方法显示系统时间 */ private void updateDisplay() { // 显示设置的时间 txtInTime.setText(new StringBuilder().append(mYear).append("-") .append(mMonth + 1).append("-").append(mDay)); }
当然,在XML文件中肯定需要一些其他的控件,比如说按钮,这些就自己设定,并设置相对应的方法就行了。这里只是简单介绍时间对话框的弹出以及自己自由选择的方法。