您的位置:首页 > 移动开发 > Android开发

Android 日期控件(DatePickerDialog)与时间控件(TimePickerDialog)的使用

2017-12-18 15:46 996 查看
在Android中提供日期和时间的控件是DataPicker与TimePicker,不过这两个控件并非弹窗模式,而是直接在页面上占据一块区域,并不会自动关闭,因此不适合直接使用,实际开发中用的是已经封装好的对话框DatePickerDialog与TimePickerDialog

运行效果如下图







DatePickerDialog

DatePickerDialog相当于在AlertDialog上加载了DatePicker,用起来更简单,只需调用构造函数设置一下当前年、月、日,然后调用show方法即可弹出日期对话框,日期选择时间有监听器OnDateSetListener负责相应,在该监听实现的OnDateSet方法中,开发者能够获得用户选择的具体日期,这里需要注意的是OnDateSet方法的月份参数,该参数的起始值不是1而是0,也就是说,一月份对应的是参数0,十二月份对应的是参数11,如果实在不理解,记住这里的月份值要加1就行了

TimePickerDialog

该对话框的用法类似DatePickerDialog,不同之处主要有两个

(1)      构造函数传的是当前的小时与分钟,最后一个参数表示是否采用二十四小时进制,true表示小时的数值范围为0~23

(2)      时间选择监听器是OnTimeSetListener,对应需要实现的方法是onTimeSet,在该方法中可获得用户选好的小时和分钟

下面是两个控件的使用方法

XML代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:gravity="center"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" tools:context="sxpi.com.myapplication.MainActivity">

<TextView
android:id="@+id/dateText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Date"
android:textSize="22sp" />
<TextView
android:id="@+id/timeText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Time"
android:textSize="22sp" />

</LinearLayout>


程序代码

import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.icu.util.Calend
4000
ar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;

public class MainActivity extends AppCompatActivity implements
View.OnClickListener,
DatePickerDialog.OnDateSetListener,
TimePickerDialog.OnTimeSetListener{
TextView dateText,timeText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dateText=(TextView)findViewById(R.id.dateText);
timeText=(TextView)findViewById(R.id.timeText);
dateText.setOnClickListener(this);
timeText.setOnClickListener(this);
}

@Override
public void onClick(View v) {
if (v.getId()==R.id.dateText){
Calendar calendar=Calendar.getInstance();
DatePickerDialog dialog = new DatePickerDialog(this,this,
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH));
dialog.show();
}
if (v.getId()==R.id.timeText){
Calendar calendar=Calendar.getInstance();
TimePickerDialog dialog=new TimePickerDialog(this,this,
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE),
true);
dialog.show();
}
}

@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
String desc=String.format("您选择的时间是%d时%d分",hourOfDay,minute);
timeText.setText(desc);
}

@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
String desc=String.format("您选择的日期是%d年%d月%d日",year,month+1,dayOfMonth);
dateText.setText(desc);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android
相关文章推荐