使用DatePicker和TimePicker实现日历功能
2015-10-17 19:14
387 查看
DatePicker 和TimePicker 可以在当前的界面中实现日期和时间的选择。
使用方法如下:
1. 在布局添加DatePicker 和TimePicker
这个没什么好说的
<DatePicker
android:id="@+id/datePicker1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TimePicker
android:id="@+id/timePicker1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
2. 初始化各类控件
public class MainActivity extends Activity {
private DatePicker datePicker;
private TimePicker timePicker;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
datePicker = (DatePicker)findViewById(R.id.datePicker1);
timePicker = (TimePicker)findViewById(R.id.timePicker1);
...
}
3. 注册监听事件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
datePicker.init(year, month, day, new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
...
}
});
timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
...
}
});
}
注册DatePicker 用到了init()方法
void init(int year, int monthOfYear, int dayOfMonth, OnDateChangedListener onDateChangedListener)
它的前三个参数用来传递当前显示的年月日,最后一个参数是对应的监听器。
timePicker 用setOnTimeChangedListener() 函数注册监听器。
完整示例代码:
activity_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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.datetimepickerdemo.MainActivity" >
<DatePicker
android:id="@+id/datePicker1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TimePicker
android:id="@+id/timePicker1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
MainActivity.java
public class MainActivity extends Activity {
private DatePicker datePicker;
private TimePicker timePicker;
private Calendar calendar;
private int year;
private int month;
private int day;
private int hour;
private int min;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
datePicker = (DatePicker)findViewById(R.id.datePicker1);
timePicker = (TimePicker)findViewById(R.id.timePicker1);
calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
hour = calendar.get(Calendar.HOUR_OF_DAY);
min = calendar.get(Calendar.MINUTE);
setTitle(year + "-" + (month + 1) + "-" + day + " " + hour + ":" + min);
datePicker.init(year, month, day, new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
}
});
timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
setTitle(hourOfDay + ":" + minute);
}
});
}
}
上面代码中的Calendar 类用于获取当前系统时间。setTitle()方法用来设置标题,它接收一个String 类型的参数。
效果如下:
使用方法如下:
1. 在布局添加DatePicker 和TimePicker
这个没什么好说的
<DatePicker
android:id="@+id/datePicker1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TimePicker
android:id="@+id/timePicker1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
2. 初始化各类控件
public class MainActivity extends Activity {
private DatePicker datePicker;
private TimePicker timePicker;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
datePicker = (DatePicker)findViewById(R.id.datePicker1);
timePicker = (TimePicker)findViewById(R.id.timePicker1);
...
}
3. 注册监听事件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
datePicker.init(year, month, day, new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
...
}
});
timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
...
}
});
}
注册DatePicker 用到了init()方法
void init(int year, int monthOfYear, int dayOfMonth, OnDateChangedListener onDateChangedListener)
它的前三个参数用来传递当前显示的年月日,最后一个参数是对应的监听器。
timePicker 用setOnTimeChangedListener() 函数注册监听器。
完整示例代码:
activity_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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.example.datetimepickerdemo.MainActivity" >
<DatePicker
android:id="@+id/datePicker1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TimePicker
android:id="@+id/timePicker1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
MainActivity.java
public class MainActivity extends Activity {
private DatePicker datePicker;
private TimePicker timePicker;
private Calendar calendar;
private int year;
private int month;
private int day;
private int hour;
private int min;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
datePicker = (DatePicker)findViewById(R.id.datePicker1);
timePicker = (TimePicker)findViewById(R.id.timePicker1);
calendar = Calendar.getInstance();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DAY_OF_MONTH);
hour = calendar.get(Calendar.HOUR_OF_DAY);
min = calendar.get(Calendar.MINUTE);
setTitle(year + "-" + (month + 1) + "-" + day + " " + hour + ":" + min);
datePicker.init(year, month, day, new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);
}
});
timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
setTitle(hourOfDay + ":" + minute);
}
});
}
}
上面代码中的Calendar 类用于获取当前系统时间。setTitle()方法用来设置标题,它接收一个String 类型的参数。
效果如下:
相关文章推荐
- Android实现表情 抓取新浪表情
- 详解Android解析Xml的三种方式——DOM、SAX以及XMLpull
- 基于Silverlight DataGrid中无代码设置开始与结束日期DatePicker的实现方法
- jQuery插件datepicker 日期连续选择
- jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
- Jquery日期选择datepicker插件用法实例分析
- datePicker――日期选择控件(with jquery)
- android开发环境遇到adt无法启动的问题分析及解决方法
- Android开发 旋转屏幕导致Activity重建解决方法
- Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)
- Android开发技巧之ViewStub控件惰性装载
- android中DatePicker和TimePicker的使用方法详解
- 分享10个很棒的学习Android开发的网站
- android开发之横向滚动/竖向滚动的ListView(固定列头)
- Android开发技巧之我的菜单我做主(自定义菜单)
- Windows下使用Apache Cordova开发ANDROID之HelloWorld
- 根据根据图片的url怎么取得图片ImageView对象
- Juqery datepicker 只显示 年和月 不显示 日 和 只选择年份的下拉列表
- [转] ADB server didn't ACK