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),无返回值。
希望可以给大家提供参考。