DigitalClock的替代者TextClock

DigitalClock在API 17(Android4.2)中就被官方定义为过时的方法,很奇怪为什么现在很多的网上的帖子都介绍DigitalClock方法的使用(已经过时),如果你想让自己的应用在高版本中进行使用的话,建议采用TextClock,为什么呢?下面简单介绍一下TextClock。

 

TextClock可以以字符串格式显示当前的日期和时间,这个控件推荐在24进制的android系统中使用,TextClock提供了两种不同的格式,一种是在24进制中显示时间和日期,另一种是在12进制中显示时间和日期。大部分人喜欢默认的设置。

怎样判断系统现在正在使用24进制的时间显示模式呢?可以通过调用TextClock提供的is24HourModeEnabled()方法来查看,比如:

TextClock tc=(TextClock)findViewById(R.id.tc);
if(tc.is24HourModeEnabled()){
Log.d("测试","24进制")
}


在24进制模式中:

1、如果没获取时间,首先通过getFormat24Hour()返回值;

2、获取失败则通过getFormat12Hour()获取返回值;

3、以上都获取失败则使用默认;

TextClock控件包含的XML属性:

1、继承自TextView的属性

2、继承自android.view.View属性

3、自有属性(android:format12Hour  android:format24Hour android:timeZone)

其中android:format12Hour对应TextClock的setFormat12Hour(CharSequence)方法,android:format24Hour对应setFormat24Hour(CharSequence)方法,android:timeZone对应setTimeZone(String)方法。

CharSequence在这不深入研究了,只做一个简单的简介,包含以下几种public方法:

charAt(int index)、length()、subSequence(int start,int end)、toString()。

看方法的名称应该就知道什么意思,一般讲CharSequence值设置为yyyy-MM-dd hh:mm ,即显示四位数年,两位数月,两位数日,和小时分钟。

注意是String类型。

 

下面回到正题,TextClock存在的Public方法是:

1、getFormat12Hour(),返回值CharSequence。在12进制模式中返回时间模式

2、getFormat24Hour(),返回值CharSequence。在24进制模式中返回时间模式

3、getTimeZone,返回值String。返回正在使用的时区。

4、is24HourModeEnabled(),返回值Boolean。检测系统当前是否使用24进制

5、setFormat12Hour(CharSequence format),无返回值。

6、setFormat12Hour(CharSequence format),无返回值。

7、setTimeZone(String timeZone),无返回值。

 

希望可以给大家提供参考。

 

 

posted on 2014-03-06 13:33  海南一哥  阅读(302)  评论(0编辑  收藏  举报

导航