使用DatePickerDialog和TimePickerDialog实现日期和时间选择对话框

来源:互联网 发布:insert pl sql 编辑:程序博客网 时间:2024/05/17 03:48

从名子就可以看出DatePickerDialog 和TimePickerDialog 与DatePicker 和TimePicker 的区别,它们可以在对话框中实现日期和时间的选择。

使用方法很简单。构造出它们的对象,并调用show() 方法将它们显示出来。

new DatePickerDialog(MainActivity.this, new OnDateSetListener(){@Overridepublic void onDateSet(DatePicker view, int year,int monthOfYear, int dayOfMonth) {...}}, year, monthOfYear, dayOfMonth).show();

这里用到了DatePickerDialog 的一个构造函数,申明如下

DatePickerDialog(Context context, OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

第一个参数是应用程序上下文,如果在onCreate() 方法中调用,则填this;如果在其他回调方法中调用,则需要填MainActivity.this。第二个参数是对应的监听器,这里应该使用OnDateSetListener监听。后三个参数用来传入刚开始显示的时间。

TimePIckerDialog的使用方法:

new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) {...}}, hour, minute, true).show();

同样,这里用到了TimePIckerDialog的一个构造函数

TimePickerDialog(Context context, OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView)

类似的,第一个参数是应用程序上下文,第二个参数是对应的监听器,第三、四个参数用来传入当前时间,最后一个参数是一个布尔量,用来指定是否显示24小时


下面是一个完整的例子:

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:orientation="vertical"    tools:context="com.example.datetimepickerdialogdemo.MainActivity" >    <Button        android:id="@+id/bt_select_date"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/select_date" />        <Button        android:id="@+id/bt_select_time"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="@string/select_time" /></LinearLayout>

MainActivity.java

public class MainActivity extends Activity {private Button selectDate;private Button selectTime;private Calendar calendar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);selectDate = (Button) findViewById(R.id.bt_select_date);selectTime = (Button) findViewById(R.id.bt_select_time);calendar = Calendar.getInstance();selectDate.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {new DatePickerDialog(MainActivity.this, new OnDateSetListener(){@Overridepublic void onDateSet(DatePicker view, int year,int monthOfYear, int dayOfMonth) {setTitle(year + "-" + (monthOfYear + 1) + "-" + dayOfMonth);}}, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show();}});selectTime.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) {setTitle(hourOfDay + ":" + minute);}}, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true).show();}});}}

效果如下:

0 0
原创粉丝点击