`
sarin
  • 浏览: 1748041 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
E3b14d1f-4cc5-37dd-b820-b6af951740bc
Spring数据库访问系列...
浏览量:172820
C2083dc5-6474-39e2-993e-263652d27795
Android学习笔记
浏览量:366550
5f40a095-b33c-3e8e-8891-606fcf3b8d27
iBatis开发详解
浏览量:188306
B272a31d-e7bd-3eff-8cc4-c0624ee75fee
Objective-C学习...
浏览量:98742
社区版块
存档分类
最新评论

Android学习笔记17:中级视图组件DatePicker和TimePicker

阅读更多
    接上文
    HTML5出现之前,我们在Wweb开发中并没有现成的日期选择器和时间选择器来用,都是通过第三方组件来引入的,比如jQuery UI的DatePicker组件。而在Android中,我看可以使用系统为我们原生提供的日期选择器DatePicker和时间选择器TimePicker。
    首先来看一下日期选择器DatePicker的文档:



    其继承结构为:
java.lang.Object
   ↳ android.view.View
   ↳ android.view.ViewGroup
   ↳ android.widget.FrameLayout
   ↳ android.widget.DatePicker

    很容易看出它是FrameLayout的子类,也就是说它的内部实现使用了框架布局。下面在Eclipse中新建项目看看日期选择器的使用:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <DatePicker
        android:id="@+id/datePicker1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

    代码非常的简单,我们就是定义了一个日期选择器DatePicker,仅仅设置了高度和宽度两个属性,下面直接运行代码,我们来看看显示效果:



    因为纵向显示不下,我们横向显示。可以看出日期选择器的效果了,此时显示的风格是英文下的月-日-年,并且月份使用的是英文简写,这不符合中国的使用习惯,我们需要更改设置。在Android模拟器中,选择Settings,之后选择语言和键盘设置:



    我们进入选择语言,然后选择语言为简体中文,之后再次运行我们的程序,就会看到如下的显示效果:



    此时的日期格式已经按照我们的习惯来显示了。
    下面我们看看如何在程序中来控制日期选择器,首先再定义的日期选择器,以供操作:
    <DatePicker
        android:id="@+id/datePicker2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    之后,编写Java程序代码:
package org.ourpioneer;
import android.app.Activity;
import android.os.Bundle;
import android.widget.DatePicker;
public class DatePickerDemoActivity extends Activity {
	private DatePicker datePicker2 = null;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.main);// 设置使用的布局管理器
		datePicker2 = (DatePicker) super.findViewById(R.id.datePicker2);// 获取DatePicker组件
		datePicker2.updateDate(2006, 8, 26);// 设置日期
	}
}

    这里的操作也很简单,获取到日期选择器后设置一下日期即可,我们设置为2006-8-26,运行程序,来看看显示效果:



    此时显示的效果为2006-9-26,说明在月份的设置上,显示的值实际比我们设置的值自动加了1。下面我们将程序安装到Android设备上来看看具体效果,这里的运行环境为Motorola Defy+ 2.3.7 MIUI:



    可以看到显示的效果和模拟器中的略有不同,而且我们对datePicker2的设置没有起作用。这可能是具体ROM的不同处理方式,而在模拟器中的显示是没有问题的,我们只要会用日期选择器就行了。
    下面来看看时间选择器TimePicker,日期选择器选择的是年月日,那么时间选择器就是选择时分了,首先来看看TimePicker的文档:



    其继承结构为:
java.lang.Object
   ↳ android.view.View
   ↳ android.view.ViewGroup
   ↳ android.widget.FrameLayout
   ↳ android.widget.TimePicker

    很显然,它也是FrameLayout的子类,下面新建项目来看看时间选择器的用法:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayou
t xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TimePicker
        android:id="@+id/timePicker"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

    代码也很简单,不用多说什么,直接运行来看看效果:



    默认显示是12小时制,中文显示上午/下午,英文环境显示AM/PM,这都是常识性的知识了,下面我们将显示风格设置为24小时制:
package org.ourpioneer;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TimePicker;
public class TimePickerDemoActivity extends Activity {
	private TimePicker timePicker = null;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.main);
		timePicker = (TimePicker) super.findViewById(R.id.timePicker);// 获取时间选择器
		timePicker.setIs24HourView(true);// 设置为24小时制
		timePicker.setCurrentHour(12);// 设置当前小时
		timePicker.setCurrentMinute(30);// 设置当前分钟
	}
}

   下面运行程序来看看效果:



    那么我们看到时间已经调整为24小时制下的12:30了。要注意的日期时间的设置和国际化是密切相关的。
    相关代码请参考附件。
    接下文
  • 大小: 122.4 KB
  • 大小: 40.9 KB
  • 大小: 51.2 KB
  • 大小: 40.3 KB
  • 大小: 51.6 KB
  • 大小: 54.2 KB
  • 大小: 154.5 KB
  • 大小: 41.7 KB
  • 大小: 41.8 KB
6
1
分享到:
评论
9 楼 细雨风声 2014-04-24  
写的非常给力,期待楼主的继续更新。楼主幸苦了。
8 楼 liucm666 2013-12-24  
看完了  对android开发有了基本的认识   感谢楼主
7 楼 逆鳞345 2013-11-30  
写的灰常的号  楼主 怎么不更了?
6 楼 qianguming 2013-09-29  
跟随到这一篇了,。。楼主继续啊
5 楼 a2011210308 2013-09-25  
期待楼主的下一篇!!!!!!
4 楼 xiaozi0lei 2013-08-27  
一直在看,希望楼主有时间继续更新
3 楼 请不要忧伤520 2013-07-16  
楼主写的挺不错,期待看到接下来关于真正和数据库各个不同 页面的事件的交互如何实现
2 楼 sarin 2013-01-24  
xxian2012 写道
从第一篇到第十七篇都看完了,楼主写得真的很通俗易懂,期待楼主的更新。楼主辛苦了!

感谢您的关注和支持
1 楼 xxian2012 2013-01-23  
从第一篇到第十七篇都看完了,楼主写得真的很通俗易懂,期待楼主的更新。楼主辛苦了!

相关推荐

Global site tag (gtag.js) - Google Analytics