Android之日期/时间选择对话框
2015-12-11 14:07
501 查看
1, 在android开发的应用程序中,通常会有对时间和日期选择的需求,而把日期和时间以对话框的形式显现出来既不会占用屏幕的太多的空间,又看起来很协调。DatePickerDialog和TimePickerDialog是Android提供的可以弹出一个日期、时间选择的对话框,我们可以在程序中通过实例化DatePickerDialog和TimePickerDialog来得到一个日期、时间对话框,用来实现对时间、日期的选择。
2,下面通过一个实例来讲解日期/时间选择对话框(DatePickerDialog和TimePickerDialog)的使用,下面先看实例效果:
a,未选择前:
b,日期选择器:
c,时间选择器:
3,下面给出具体的实现代码,首先创建一个布局文件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" >
<EditText
android:id="@+id/edit"
android:layout_width="200dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="日期选择器" />
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="时间选择器" />
</LinearLayout>
4,java类中的代码:
public class MainActivity extends Activity{
//实例化控件
private Button dateButton;
private Button timeButton;
private EditText editText;
private DatePickerDialog dateDialog;
private TimePickerDialog timeDialog ;
private int year, monthOfYear, dayOfMonth, hourOfDay, minute;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//通过findViewById找到控件
dateButton=(Button) findViewById(R.id.button1);
timeButton=(Button) findViewById(R.id.button2);
editText=(EditText) findViewById(R.id.edit);
//通过Calendar对象来获取年、月、日、时、分的信息
Calendar calendar=Calendar.getInstance();
year=calendar.get(calendar.YEAR);
monthOfYear=calendar.get(calendar.MONTH);
dayOfMonth=calendar.get(calendar.DAY_OF_MONTH);
hourOfDay=calendar.get(calendar.HOUR_OF_DAY);
minute=calendar.get(calendar.MINUTE);
/*
* 实例化DatePickerDialog
*/
dateDialog=new DatePickerDialog(this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg0, int year, int monthOfYear, int dayOfMonth) {
// 把获取的日期显示在文本框内,月份从0开始计数,所以要加1
String text=year+"-"+(monthOfYear+1)+"-"+dayOfMonth;
editText.setText(text);
}
}, year, monthOfYear, dayOfMonth); //后面的三个参数对应于上面的年、月、日
/**
* 对日期选择器按钮设置监听事件
*/
dateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// 点击日期选择器按钮时显示出日期对话框
dateDialog.show();
}
});
/*
* 实例化TimePickerDialog
*/
timeDialog=new TimePickerDialog(this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, hourOfDay+":"+minute, Toast.LENGTH_LONG).show();
}
}, hourOfDay, minute, true); //最后一个参数设置是否为24小时制
/**
* 对时间选择器按钮设置监听事件
*/
timeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// 点击时间选择器按钮时显示出时间对话框
timeDialog.show();
}
});
}
}
5,注意: 实例化DatePickerDialog和TimePickerDialog过程中,对其设置监听事件时(第二个参数)需手动导包,导包的快捷键是Ctrl+Shift+O.
2,下面通过一个实例来讲解日期/时间选择对话框(DatePickerDialog和TimePickerDialog)的使用,下面先看实例效果:
a,未选择前:
b,日期选择器:
c,时间选择器:
3,下面给出具体的实现代码,首先创建一个布局文件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" >
<EditText
android:id="@+id/edit"
android:layout_width="200dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="日期选择器" />
<Button
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="时间选择器" />
</LinearLayout>
4,java类中的代码:
public class MainActivity extends Activity{
//实例化控件
private Button dateButton;
private Button timeButton;
private EditText editText;
private DatePickerDialog dateDialog;
private TimePickerDialog timeDialog ;
private int year, monthOfYear, dayOfMonth, hourOfDay, minute;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//通过findViewById找到控件
dateButton=(Button) findViewById(R.id.button1);
timeButton=(Button) findViewById(R.id.button2);
editText=(EditText) findViewById(R.id.edit);
//通过Calendar对象来获取年、月、日、时、分的信息
Calendar calendar=Calendar.getInstance();
year=calendar.get(calendar.YEAR);
monthOfYear=calendar.get(calendar.MONTH);
dayOfMonth=calendar.get(calendar.DAY_OF_MONTH);
hourOfDay=calendar.get(calendar.HOUR_OF_DAY);
minute=calendar.get(calendar.MINUTE);
/*
* 实例化DatePickerDialog
*/
dateDialog=new DatePickerDialog(this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker arg0, int year, int monthOfYear, int dayOfMonth) {
// 把获取的日期显示在文本框内,月份从0开始计数,所以要加1
String text=year+"-"+(monthOfYear+1)+"-"+dayOfMonth;
editText.setText(text);
}
}, year, monthOfYear, dayOfMonth); //后面的三个参数对应于上面的年、月、日
/**
* 对日期选择器按钮设置监听事件
*/
dateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// 点击日期选择器按钮时显示出日期对话框
dateDialog.show();
}
});
/*
* 实例化TimePickerDialog
*/
timeDialog=new TimePickerDialog(this, new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, hourOfDay+":"+minute, Toast.LENGTH_LONG).show();
}
}, hourOfDay, minute, true); //最后一个参数设置是否为24小时制
/**
* 对时间选择器按钮设置监听事件
*/
timeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// 点击时间选择器按钮时显示出时间对话框
timeDialog.show();
}
});
}
}
5,注意: 实例化DatePickerDialog和TimePickerDialog过程中,对其设置监听事件时(第二个参数)需手动导包,导包的快捷键是Ctrl+Shift+O.
相关文章推荐
- Android之项目推荐使用的第三方库
- android4.4系统源码编译(三)_编译
- Android SQLite 增,删,改,查
- Android学习之Service生命周期及其通信
- 牛郎织女做法解释android activity生命周期
- Android中TableLayout中的布局
- Android官方培训课程中文版(v0.9.4)
- java,android编程框架
- Android 笔记
- 【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位网友补充完善
- android SQLite使用SQLiteOpenHelper类对数据库进行操作
- Android 知识点备忘
- Android develop tricks——整理自国外的一些Blog
- Android开发者网址导航
- Gradle 第七讲 之 android插件的入门2 SourceSets
- Android Studio 快捷键
- AndroidManifest之Application
- Didn't find class "android.support.v7.widget.RecyclerView"
- 获取小米双卡双待手机默认上网卡槽的方法
- Android在发送带有附件的邮件