android datepicker 参数,android常用组件之DatePicker和TimePicker

本文介绍了Android中的DatePicker和TimePicker组件的使用方法。通过示例代码展示了如何创建日期选择对话框和时间选择对话框,包括监听器的设置、初始日期和时间的选择,并提供了测试代码和图片来辅助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在android中,DatePicker组件和TimePicker组件分别是日期选择器和时间选择器。

该实例中,当点击日期选择器按钮后,弹出日期选择框,用户选择日期后andoid会将日期显示到TextView组件中;当点击时间选择器按钮后,弹出时间选择框,选择后在相应的TextView组件显示时间。

日期选择框和时间选择框在创建实例的过程中,构造方法的参数类似,以下分别介绍:

1、日期选择框创建实例如下

DatePickerDialog datePicker=new DatePickerDialog(Context context, OnDateSetListener callBack, int year, int  monthOfYear, int dayOfMonth);

其中第二个参数是日期选择框的监听方法,通过该方法可以将选择日期的年月日返回,后三个参数是弹出日期选择框的初始日期显示。

日期选择框的监听方法如下,需要覆写onDateSet()方法。

DatePickerDialog.OnDateSetListener date_callback=new DatePickerDialog.OnDateSetListener() {

@Override

public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {//arg1~arg3分别是选择的年月日

textView_Date.setText(String.format("%s年%s月%s日",format_conver(arg1),format_conver(arg2),format_conver(arg3)));//自定义一个format_conver()方法保证格式输出

}

};

2、时间选择框创建实例和日期选择框过程类似,参数基本相同。

TimePickerDialog timePicker=new TimePickerDialog(Context context, OnTimeSetListener callBack, int hourOfDay, int minute, boolean is24HourView);

其中最后一个参数是时间采用12小时制还是24小时制显示。

时间选择框监听方法如下,需要重写onTimeSet()方法。

TimePickerDialog.OnTimeSetListener time_callback=new TimePickerDialog.OnTimeSetListener() {

@Override

public void onTimeSet(TimePicker arg0, int arg1, int arg2) {//arg1表示小时,arg2表示分钟

textView_Time.setText(String.format("%s:%s", format_conver(arg1),format_conver(arg2)));//格式输出

}

};

实例测试代码如下:

首先是布局文件:

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/LinearLayout1"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context="main.test_dt_picker.MainActivity">

android:id="@+id/tv1_Date"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="30sp"

android:text="@string/tv_Date"/>

android:id="@+id/btn1_Date"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/btn_Date" />

android:id="@+id/tv2_Time"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="30sp"

android:text="@string/tv_Time"/>

android:id="@+id/btn2_Time"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/btn_Time"/>

其次是strings.xml文件:

Test_DT_Picker

Settings

None

None

日期选择器

时间选择器

再次是android源码文件:

package main.test_dt_picker;

import android.app.DatePickerDialog;

import android.app.TimePickerDialog;

import android.os.Bundle;

import android.support.v7.app.ActionBarActivity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.DatePicker;

import android.widget.TextView;

import android.widget.TimePicker;

public class MainActivity extends ActionBarActivity implements OnClickListener{

private Button button_Date=null,button_Time=null;

private TextView textView_Date=null,textView_Time=null;

private DatePickerDialog datePicker=null;

private TimePickerDialog timePicker=null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button_Date=(Button)findViewById(R.id.btn1_Date);

button_Time=(Button)findViewById(R.id.btn2_Time);

textView_Date=(TextView)findViewById(R.id.tv1_Date);

textView_Time=(TextView)findViewById(R.id.tv2_Time);

button_Date.setOnClickListener(MainActivity.this);

button_Time.setOnClickListener(MainActivity.this);

datePicker=new DatePickerDialog(MainActivity.this, date_callback, 2012, 6, 18);

timePicker=new TimePickerDialog(MainActivity.this, time_callback, 10, 5, true);

}

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

int btn_id=arg0.getId();

switch (btn_id) {

case R.id.btn1_Date: datePicker.show();break;

case R.id.btn2_Time: timePicker.show();break;

default: break;

}

}

DatePickerDialog.OnDateSetListener date_callback=new DatePickerDialog.OnDateSetListener() {

@Override

public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {

textView_Date.setText(String.format("%s年%s月%s日",format_conver(arg1),format_conver(arg2),format_conver(arg3)));

}

};

TimePickerDialog.OnTimeSetListener time_callback=new TimePickerDialog.OnTimeSetListener() {

@Override

public void onTimeSet(TimePicker arg0, int arg1, int arg2) {

textView_Time.setText(String.format("%s:%s", format_conver(arg1),format_conver(arg2)));

}

};

public String format_conver(int s){//该方法为了输出一位数时保证前面加一个0,使之与实现十位数对齐,比如时间是12:5,使用该方法后输出为12:05

return s>=10?""+s:"0"+s;

}

}

最后是三张测试图片:

第一张启动后原图:

99e6970c63137273f14a17250c358591.png

点击日期选择框按钮后弹出的日期选择框:

409ed19a8d790c515b418caead162bf1.png

最后测试图片:

d335fa0bf9513a33e137b9141aadfeab.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值