Android组件的使用:DatePicker,TimePicker
2013-07-23 00:48
513 查看
1、DatePicker的使用 |
<DatePicker -->声明DatePicker控件 android:id="@+id/dp_showdate" -->设置控件id android:layout_width="match_parent" -->设置控件宽度为父容器宽度 android:layout_height="wrap_content"/> -->设置控件高度为父容器高度
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //调用父类方法 super.setContentView(R.layout.datepicker_layout);//设置布局管理器 /* year:表示要设置的年份 6 * monthOfYear:表示要设置的一年中的某月 7 * dayOfMonth:表示要设置的一个月中的某天 8 * onDateChangedListener:表示要设置的时间改变的监听器,当时间改变时触发该事件 9 */ dp_showdate.init(year, monthOfYear, dayOfMonth, onDateChangedListener); }
2、要对以上:year、monthOfYear、dayOfMonth进行初始化,可以使用java中提供的Calendar类方便的获得。
//使用Calendar类提供的日期方法,获得相应的年月日 Calendar calendar = Calendar.getInstance(); //通过Calendar类提供的静态方法:类名.方法()获得Calendar实例 int year = calendar.get(Calendar.YEAR); //设置年份 int monthOfYear = calendar.get(Calendar.YEAR); //设置一年中的某月 int dayOfMonth = calendar.get(Calendar.YEAR); //设置一月中的某天
3、然后再设置日期改变监听:
dp_showdate.init(year, monthOfYear, dayOfMonth, new OnDateChangedListener(){ @Override public void onDateChanged(DatePicker view, int year, int monthOfYear,int dayOfMonth) { //什么都没做 } });
运行效果:
1.1为DatePicker添加日期改变监听 |
<TextView -->定义一个TextView控件 android:id="@+id/tv_showdate" -->设置控件id android:layout_width="match_parent" -->设置控件宽度 android:layout_height="wrap_content"/> -->设置控件高度
在监听方法中初始化年月日:
DatePickerDemoActivity.this.year = year; //选择后的年份 DatePickerDemoActivity.this.monthOfYear = monthOfYear; //选择后的月份 DatePickerDemoActivity.this.dayOfMonth = dayOfMonth; //选择后的天
定义一个方法,用于显示信息:
/* * 该方法用于显示信息 */ public void showInfo(int year,int monthOfYear,int dayOfMonth){ String info =year+"年"+monthOfYear+"月"+dayOfMonth+"日"; tv_showdate.setText(info);//把输出的信息放到TextView中 }
运行效果:
完整代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout -->定义线性布局管理器 xmlns:android="http://schemas.android.com/apk/res/android" -->命名控件 android:layout_width="match_parent" -->设置管理器宽度为屏幕宽度 android:layout_height="match_parent" -->设置管理器高度为屏幕高度 android:orientation="vertical" > -->设置管理器中的内容为垂直摆放 <TextView -->定义组件 android:id="@+id/tv_showdate" -->为组件设置id android:layout_width="match_parent" -->设置组件宽度为父容器宽度 android:layout_height="wrap_content"/> -->设置组件高度 <DatePicker -->定义组件 android:id="@+id/dp_showdate" -->设置组件id android:layout_width="match_parent" -->设置组件宽度为父容器宽度 android:layout_height="wrap_content"/> -->设置组件高度为包裹内容高度 </LinearLayout>
DatePickerDemoActivity类:
package com.example.basiccomponent2; import java.util.Calendar; import android.app.Activity; import android.os.Bundle; import android.widget.DatePicker; import android.widget.DatePicker.OnDateChangedListener; import android.widget.TextView; public class DatePickerDemoActivity extends Activity { private TextView tv_showdate = null; //声明TextView对象 private DatePicker dp_showdate = null; //声明DatePicker对象 //使用Calendar类提供的日期方法,获得相应的年月日 Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int monthOfYear = calendar.get(Calendar.YEAR); int dayOfMonth = calendar.get(Calendar.YEAR); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.datepicker_layout);//设置布局管理器 //初始化view dp_showdate = (DatePicker)super.findViewById(R.id.dp_showdate); tv_showdate = (TextView)super.findViewById(R.id.tv_showdate); /* year:表示要设置的年份 * monthOfYear:表示要设置的一年中的某月 * dayOfMonth:表示要设置的一个月中的某天 * onDateChangedListener:表示要设置的时间改变的监听器 */ dp_showdate.init(year, monthOfYear, dayOfMonth, new OnDateChangedListener(){ @Override public void onDateChanged(DatePicker view, int year, int monthOfYear,int dayOfMonth) { DatePickerDemoActivity.this.year = year; //选择后的年份 DatePickerDemoActivity.this.monthOfYear = monthOfYear; //选择后的月份 DatePickerDemoActivity.this.dayOfMonth = dayOfMonth; //选择后的天 DatePickerDemoActivity.this.showInfo(year, monthOfYear,dayOfMonth);//调用显示信息方法 } }); } /* * 该方法用于显示信息 */ public void showInfo(int year,int monthOfYear,int dayOfMonth){ String info =year+"年"+(monthOfYear+1)+"月"+dayOfMonth+"日"; tv_showdate.setText(info);//把输出的信息放到TextView中 } }
修改显示日期效果,为小于10的数字添加0:
public void showInfo(int year, int monthOfYear, int dayOfMonth) { String info = year + "年" + addZero(monthOfYear+1) + "月" + addZero(dayOfMonth) + "日"; tv_showdate.setText(info);// 把输出的信息放到TextView中 } public String addZero(int num){ String str = null; if(num<10){ str = "0"+num; }else{ str = ""+num; } return str; }
2、TimePicker的使用 |
<TimePicker android:id="@+id/tp_showtime" android:layout_width="match_parent" android:layout_height="wrap_content"/>
在Activity类中,完整代码:
package com.example.basiccomponent2; import java.util.Calendar; import android.app.Activity; import android.os.Bundle; import android.widget.DatePicker; import android.widget.DatePicker.OnDateChangedListener; import android.widget.TextView; import android.widget.TimePicker; import android.widget.TimePicker.OnTimeChangedListener; public class DatePickerDemoActivity extends Activity { private TextView tv_showdate = null; // private DatePicker dp_showdate = null; // private TimePicker tp_showtime = null; // 使用Calendar类提供的日期方法,获得相应的年月日 Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int monthOfYear = calendar.get(Calendar.YEAR); int dayOfMonth = calendar.get(Calendar.YEAR); int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.datepicker_layout);// 设置布局管理器 // 初始化view dp_showdate = (DatePicker) super.findViewById(R.id.dp_showdate); tv_showdate = (TextView) super.findViewById(R.id.tv_showdate); tp_showtime = (TimePicker)super.findViewById(R.id.tp_showtime); /* * year:表示要设置的年份 monthOfYear:表示要设置的一年中的某月 dayOfMonth:表示要设置的一个月中的某天 * onDateChangedListener:表示要设置的时间改变的监听器 */ dp_showdate.init(year, monthOfYear, dayOfMonth,new OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year,int monthOfYear, int dayOfMonth) { DatePickerDemoActivity.this.year = year; // 选择后的年份 DatePickerDemoActivity.this.monthOfYear = monthOfYear; // 选择后的月份 DatePickerDemoActivity.this.dayOfMonth = dayOfMonth; // 选择后的天 DatePickerDemoActivity.this.showInfo(year, monthOfYear,dayOfMonth,hourOfDay,minute);// 调用显示信息方法 } }); //设置时间事件 tp_showtime.setOnTimeChangedListener(new OnTimeChangedListener(){ @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { DatePickerDemoActivity.this.hourOfDay = hourOfDay; DatePickerDemoActivity.this.minute = minute; DatePickerDemoActivity.this.showInfo(year, monthOfYear,dayOfMonth,hourOfDay,minute);// 调用显示信息方法 } }); } /* * 该方法用于显示信息 */ public void showInfo(int year, int monthOfYear, int dayOfMonth,int hourOfDay,int minute) { String info = year + "年" + addZero(monthOfYear+1) + "月" + addZero(dayOfMonth) + "日" + addZero(hourOfDay) + "时" + addZero(minute) + "分"; tv_showdate.setText(info);// 把输出的信息放到TextView中 } public String addZero(int num){ String str = null; if(num<10){ str = "0"+num; }else{ str = ""+num; } return str; } }
相关文章推荐
- Android组件的使用:DatePicker,TimePicker
- android中DatePicker和TimePicker的使用
- Android CalendarView,DatePicker,TimePicker,以及NumberPicker的使用
- android常用组件之DatePicker和TimePicker
- android中TimePicker和DatePicker的简单使用
- android 时间日期控件的使用(DatePicker、TimePicker、DatePickerDialog、TimePickerDialog、AnalogClock、DigitalClock)
- Android基础 DatePicker和TimePicker的使用
- Android DatePicker日期选择器、TimePicker时间选择器的使用
- Android 控件:AutoCompleteTextView,MultiAutoCompleteTextView ,TimePicker ,DatePicker,Spinner 的简单使用
- Android之DatePicker和TimePicker的使用
- Android学习--DatePicker和TimePicker使用
- Android基本组件08(DatePicker,TimePicker)
- android DatePicker和TimePicker使用
- android中DatePicker和TimePicker的使用方法详解
- Android月历控件(DatePicker)和时间控件(TimePicker)的使用
- android中DatePicker和TimePicker的使用方法详解
- Android时间日期拾取器学习使用(DatePicker、TimePicker)
- Android中的DatePicker和TimePicker控件使用
- Android DatePicker, TimePicker控件的使用
- android常用UI使用案例:DatePicker和TimerPicker