【转】Pro Android学习笔记(十七):用户界面和控制(5):日期和时间控件
DatePicker和TimePicker控件
使用DatePicker和TimePicker,故名思议,用户可以对时间进行选择。XML代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout ...... >
<TextView ...... android:id="@+id/ui_date1"/>
<DatePicker android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ui_datepick"/>
<TextView ...... android:id="@+id/ui_time1"/>
<TimePicker android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ui_timepick"/>
</LinearLayout>
如果我们不在代码中设置日期和时间的值,初始时,DatePiker和TimePiker将设置为当前日期和时间。对于这两个控件,在代码中,我们可以它们进行读写操作。对于日期有:
TextView dateText = (TextView)findViewById(R.id.ui_date1);
dateText.setText("Set default date to 2013/1/1");
DatePicker dp = (DatePicker)findViewById(R.id.ui_datepick);
//对DatePicker进行设置,使用dp.init(year, monthOfYear, dayOfMonth, onDateChangedListener) ,需要注意,月份的有效值是“0-11”,例如dp.init(2013, 1, 1, null); 则是设置2013.2.1 。
dp.init(2013,0,1,new DatePicker.OnDateChangedListener() {
//通过onDateChangedListener对日期发生变化进行触发
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
//注意:会被触发两次。由于Picker实际上包含日历和日期转盘两部分(会自动同步),日历和日期变化产生两次触发。但日历变化可以自动使日期变化,即则通过日历的日期变化只触发一次。
Log.d("UiDateTimeTest","set Date to " + year+ "." + (monthOfYear+1)+"."+dayOfMonth);
}
});
dp.setCalendarViewShown(false); //不显示日历部分,只显示日期转盘部分
对于时间:
//设置时间发生变化的处理
TimePicker.OnTimeChangedListener timeChangedFunc = new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
Log.d("UiDateTimeTest","Set time to "+hourOfDay + ":" + minute);
}
};
TextView timeText = (TextView)findViewById(R.id.ui_time1);
timeText.setText("Set default time to 16:00");
TimePicker tp = (TimePicker)findViewById(R.id.ui_timepick);
tp.setIs24HourView(true);
tp.setCurrentHour(16);
tp.setCurrentMinute(0);
tp.setOnTimeChangedListener(timeChangedFunc); //这里用匿名类方式时,Eclipse显示错误,所以本例直接用对象

DigitalClock和AnalogClock控件
数字时钟和模拟时钟如图所示。和其他的空间不同,我们不能对它所显示的时间进行修改,它们将显示系统的实时时间。使用它们的一个方便是,我们不需要进行代码编写,它们可以自动地不断地进行同步和更新时间。XML如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout …… >
<DigitalClock android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<AnalogClock android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
相关链接: 我的Android开发相关文章
【转】Pro Android学习笔记(十七):用户界面和控制(5):日期和时间控件的更多相关文章
- 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout
目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...
- 【转】 Pro Android学习笔记(二二):用户界面和控制(10):自定义Adapter
目录(?)[-] 设计Adapter的布局 代码部分 Activity的代码 MyAdapter的代码数据源和构造函数 MyAdapter的代码实现自定义的adapter MyAdapter的代码继续 ...
- 【转】 Pro Android学习笔记(十九):用户界面和控制(7):ListView
目录(?)[-] 点击List的item触发 添加其他控件以及获取item数据 ListView控件以垂直布局方式显示子view.系统的android.app.ListActivity已经实现了一个只 ...
- 【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge
目录(?)[-] xml控件代码重用include xml控件代码重用merge 横屏和竖屏landsacpe portrait xml控件代码重用:include 如果我们定义一个控件,需要在不同的 ...
- 【转】 Pro Android学习笔记(五二):ActionBar(5):list模式
可以在action bar中加入spinner的下来菜单,有关spinner,可以参考Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner. list的样式和 ...
- Pro Android学习笔记 ActionBar(1):Home图标区
Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在A ...
- 【转】 Pro Android学习笔记(八二):了解Package(1):包和进程
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在之前,我们已经学习了如何签发apk,见P ...
- 【转】 Pro Android学习笔记(六七):HTTP服务(1):HTTP GET
目录(?)[-] HTTP GET小例子 简单小例子 出现异常NetworkOnMainThreadException 通过StrictMode进行处理 URL带键值对 Andriod应用可利用ser ...
- 【转】 Pro Android学习笔记(五五):调试和分析(3):adb命令、模拟器控制台和StrictMode
目录(?)[-] adb命令 模拟器Console StrictMode adb命令 我们在学习SQLite的使用,介绍过部分adb命令的使用,见Pro Android学习笔记(五):了解Conten ...
- 【转】 Pro Android学习笔记(五六):配置变化
目录(?)[-] Activity的destorycreate过程 Fragment的destorycreate过程 onSaveInstanceState saveFragmentInstanceS ...
随机推荐
- js网页视频播放: vcastr22 、 flowplayer 、 jwplayer
实例结构: 实例1: demo.html <embed src="vcastr22.swf?vcastr_file=../wujiandao.flv" allowFullSc ...
- Virtualbox报错------> '/etc/init.d/vboxdrv setup'
Ubuntu下VirtualBox本来可以很好地用的,今天早上一来就报错了,--提示如下内容: ---------------------------------------------------- ...
- 10.Django数据库操作(增删改)
插入数据 命令:create 或者 save create用法:ModelName.objects.create(itemName="itemValue") save用法:mode ...
- pip-grep
Pip-pop pip-grep主要是用于方便查看Requirements.txt中那些模块是安装了的.也就是通过输入的然后模块名称然后在Requirements.txt中进行查询.里面比较难的就是d ...
- 小程序canvas转base64方法 使用upng库 亲测没问题
普通字符串base64编码转化可以使用原生的atob和btoa方法 图片转码:传统的图片转base64的方法可以采用FileReader的readAsDataURL()或canvas.toDataUR ...
- oc中的blocks的功能,一种比代理简洁的方式
blocks方式: 谁要东西谁就要写blocks,通过blocks(返回值)获取想要的,提供东西的人要通过实现函数指针把东西给想要的人.当然也可以传值,传值需要通过形参. block的功能: bloc ...
- Android SDK上手指南 3:用户交互
在这篇教程中,我们将对之前所添加的Button元素进行设置以实现对用户点击的检测与响应.为了达成这一目标,我们需要在应用程序的主Activity类中略微涉及Java编程内容.如果大家在Java开发方面 ...
- redis于spring整合之RedisTemplate
原文地址: http://www.jianshu.com/p/7bf5dc61ca06
- 从性能角度分析一下String,List,Map
使用String.subString()方法的时候注意内存溢出的问题 public static void testH() { List<String> strings = new Arr ...
- [原创]java WEB学习笔记43:jstl 介绍,core库详解:表达式操作,流程控制,迭代操作,url操作
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...