联合使用DatePIcker和TimePicker来选择日期和时间

TimePicker中的主要方法:

setCurrentMinute(Integer currentMinute):设置当前时间的分钟。

getCurrentMinute():获取当前时间的分钟。

setEnabled(boolean enabled):设置当前视图是否可以编辑。

setOnTimeChangeListener(TimePicker.OnTimeChangeListener onTimeChangeListener):但时间改变时调用。


控件DatePicker中的主要方法如下所示:

getDayOfMonth():获取当前日期。

getMonth():获取当前日期。

getYear():获取当前年。

updateDate(int year,int monthOfYear,int dayOfMonth):更新日期。


具体实现:

xml文件:

<?xml version="1.0" encoding="utf-8"?>
  <AbsoluteLayout
    android:id="@+id/layout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/white"
    xmlns:android="http://schemas.android.com/apk/res/android"
  >
    <DatePicker
      android:id="@+id/dPicker"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_x="20px"
      android:layout_y="20px"
    >
    </DatePicker>
    <TimePicker
      android:id="@+id/tPicker"
      android:layout_width="220px"
      android:layout_height="wrap_content"
      android:layout_x="20px"
      android:layout_y="180px"
    >
    </TimePicker>
    <TextView
      android:id="@+id/showTime"
      android:layout_width="wrap_content"
      android:layout_height="34px"
      android:textSize="24sp"
      android:layout_x="30px"
      android:layout_y="330px"
      android:textColor="@drawable/black"
    >
    </TextView>
  </AbsoluteLayout>

java文件:

package com.EX031;

/* import相关class */

import java.util.Calendar;

import com.EX031.R;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.DatePicker;
import android.widget.TimePicker;

public class EX031 extends Activity 
{ 
  /*声明日期及时间变量*/
  private int mYear;
  private int mMonth;
  private int mDay;
  private int mHour;
  private int mMinute;
  /*声明对象变量*/
  TextView tv;
  TimePicker tp;
  DatePicker dp;
  
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    /*取得目前日期与时间*/
    Calendar c=Calendar.getInstance();
    mYear=c.get(Calendar.YEAR);
    mMonth=c.get(Calendar.MONTH);
    mDay=c.get(Calendar.DAY_OF_MONTH);
    mHour=c.get(Calendar.HOUR_OF_DAY);
    mMinute=c.get(Calendar.MINUTE);
    
    super.onCreate(savedInstanceState);
    /* 载入main.xml Layout */
    setContentView(R.layout.main);    
    
    /*取得TextView对象,并调用updateDisplay()
      来设置显示的初始日期时间*/
    tv= (TextView) findViewById(R.id.showTime);
    updateDisplay();
    
    /*取得DatePicker对象,以init()
      设置初始值与onDateChangeListener() */
    dp=(DatePicker)findViewById(R.id.dPicker);
    dp.init(mYear,mMonth,mDay,new DatePicker.OnDateChangedListener()
    {
      @Override
      public void onDateChanged(DatePicker view,int year,
                          int monthOfYear,int dayOfMonth)
      {
        mYear=year;
        mMonth= monthOfYear;
        mDay=dayOfMonth;
        /*调用updateDisplay()来改变显示日期*/
        updateDisplay();
      }
    });
    
    /*取得TimePicker对象,并设置为24小时制显示*/
    tp=(TimePicker)findViewById(R.id.tPicker);
    tp.setIs24HourView(true);
    
    /*setOnTimeChangedListener,并覆盖onTimeChanged event*/
    tp.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener()
    {
      @Override
      public void onTimeChanged(TimePicker view,
                              int hourOfDay,
                              int minute)
      {
        mHour=hourOfDay;
        mMinute=minute;
        /*调用updateDisplay()来改变显示时间*/
        updateDisplay();
      }
    });
  }
    
  /*设置显示日期时间的方法*/
  private void updateDisplay()
  {
    tv.setText(
      new StringBuilder().append(mYear).append("/")
                         .append(format(mMonth + 1)).append("/")
                         .append(format(mDay)).append(" ")
                         .append(format(mHour)).append(":")
                         .append(format(mMinute))
    );
  }
  
  /*日期时间显示两位数的方法*/
  private String format(int x)
  {
    String s=""+x;
    if(s.length()==1) s="0"+s;
    return s;
  }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值