安卓入门:动态输入日期与时间

今天对DatePickerTimePicker进行了学习,并且参照了教程自己打了一遍。

DatePicker 与TimePicker 应用

① 新建工程

② 修改main.xml 布局,添加一个DatePicker、一个TimePicker、一个TextView

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" >
<DatePicker
android:id="@+id/my_DatePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="10px"
android:layout_y="10px">
</DatePicker><!-- 日期设置器-->
<TimePicker
android:id="@+id/my_TimePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="10px"
android:layout_y="150px">
</TimePicker><!-- 事件设置器-->
<TextView
android:id="@+id/my_TextView"
android:layout_width="228px"
android:layout_height="29px"
android:text="TextView"
android:layout_x="10px"
android:layout_y="300px">
</TextView>
</AbsoluteLayout>


③ DatePicker 的初始化与日期改变事件的处理

/* 定义程序用到的UI元素对象:日历设置器*/
DatePicker my_datePicker;
/* findViewById()从XML中获取UI元素对象*/
my_datePicker = (DatePicker) findViewById(R.id.my_DatePicker);
-----------------------------------Android 编程基础
41
④ TimePicker 的初始化与时间改变事件的处理
⑤ 修改mainActivity.java,添加动态修改时间并显示效果
/*为日历设置器添加点击事件监听器,处理设置日期事件*/
my_datePicker.init(my_Year, my_Month, my_Day,
new DatePicker.OnDateChangedListener(){
@Override
public void onDateChanged(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// TODO Auto-generated method stub
/*日期改变事件处理*/
}
});


④ TimePicker 的初始化与时间改变事件的处理


/* 定义程序用到的UI元素对象:时间设置器*/
TimePicker my_timePicker;
/* findViewById()从XML中获取UI元素对象*/
my_timePicker = (TimePicker) findViewById(R.id.my_TimePicker);
/* 把时间设置成24小时制*/
my_timePicker.setIs24HourView(true);
/*为时间设置器添加点击事件监听器,处理设置时间事件*/
my_timePicker.setOnTimeChangedListener(new
TimePicker.OnTimeChangedListener(){
@Override
public void onTimeChanged(TimePicker view, int hourOfDay,
int minute) {
// TODO Auto-generated method stub
/*时间改变事件处理*/
}
});


⑤ 修改mainActivity.java,添加动态修改时间并显示效果


/*导入要使用的包*/
import java.util.Calendar;
import java.util.Locale;
import android.app.Activity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;
public class Ex_Ctrl_15ME extends Activity {
/** Called when the activity is first created. */
/* 定义时间变量:年、月、日、小时、分钟*/
int my_Year;
int my_Month;
-----------------------------------Android 编程基础
42
int my_Day;
int my_Hour;
int my_Minute;
/* 定义程序用到的UI元素对象:日历设置器、时间设置器、显示时间的TextView */
DatePicker my_datePicker;
TimePicker my_timePicker;
TextView showDate_Time;
/* 定义日历对象,初始化时,用来获取当前时间*/
Calendar my_Calendar;
@Override
public void onCreate(Bundle savedInstanceState) {
/* 从Calendar抽象基类获得实例对象,并设置成中国时区*/
my_Calendar = Calendar.getInstance(Locale.CHINA);
/* 从日历对象中获取当前的:年、月、日、时、分*/
my_Year = my_Calendar.get(Calendar.YEAR);
my_Month = my_Calendar.get(Calendar.MONTH);
my_Day = my_Calendar.get(Calendar.DAY_OF_MONTH);
my_Hour = my_Calendar.get(Calendar.HOUR_OF_DAY);
my_Minute = my_Calendar.get(Calendar.MINUTE);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* findViewById()从XML中获取UI元素对象*/
my_datePicker = (DatePicker) findViewById(R.id.my_DatePicker);
my_timePicker = (TimePicker) findViewById(R.id.my_TimePicker);
showDate_Time = (TextView) findViewById(R.id.my_TextView);
/* 把时间设置成24小时制*/
my_timePicker.setIs24HourView(true);
/* 显示时间*/
loadDate_Time();
/*为日历设置器添加点击事件监听器,处理设置日期事件*/
my_datePicker.init(my_Year, my_Month, my_Day,
new DatePicker.OnDateChangedListener(){
@Override
public void onDateChanged(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// TODO Auto-generated method stub
/*把设置改动后的日期赋值给我的日期对象*/
my_Year=year;
my_Month=monthOfYear;
my_Day=dayOfMonth;
/* 动态显示修改后的日期*/
loadDate_Time();
}
});
-----------------------------------Android 编程基础
43
⑥ 结果
/*为时间设置器添加点击事件监听器,处理设置时间事件*/
my_timePicker.setOnTimeChangedListener(new
TimePicker.OnTimeChangedListener(){
@Override
public void onTimeChanged(TimePicker view, int hourOfDay,
int minute) {
/*把设置改动后的时间赋值给我的时间对象*/
my_Hour=hourOfDay;
my_Minute=minute;
/* 动态显示修改后的时间*/
loadDate_Time();
}
});
} 
private void loadDate_Time() {
showDate_Time.setText(new StringBuffer()
.append(my_Year).append("/")
.append(FormatString(my_Month + 1))
.append("/").append(FormatString(my_Day))
.append(" ").append(FormatString(my_Hour))
.append(" : ").append(FormatString(my_Minute)));
} 
private String FormatString(int x) {
String s = Integer.toString(x);
if (s.length() == 1) {
s = "0" + s;
} return s;
}
}

下面是Demo下载

DataPicker.rar



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值