您的位置:首页 > 其它

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

2016-08-27 11:21 681 查看
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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐