我是靠谱客的博主 热心紫菜,最近开发中收集的这篇文章主要介绍TimePicker,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

TimePicker和DatePicker类似——都是用于确保用户选择的时间或日期是有效的。TimePicker是时间选择器,支持24小时制和12(AM/PM)小时制。可以用OnTimeChangedListener监听TimePicker时间变化。

先看看效果图:

                

     24小时制TimePicker                                                     12小时制TimePicker


时间发生改变后,显示一个Toast提示时间改变。

下面实现上面的效果:

1、创建布局文件widget_timepicker_layout.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent">  
  5.   
  6.     <TimePicker  
  7.         android:id="@+id/show_time_widget"  
  8.         android:layout_width="wrap_content"  
  9.         android:layout_height="wrap_content"  
  10.         android:layout_alignParentLeft="true"  
  11.         android:layout_alignParentTop="true"  
  12.         android:layout_marginTop="104dp" />  
  13.   
  14. </RelativeLayout>  
2、显示屏幕 WidgetTimePickerActivity.java

[java]  view plain  copy
  1. package com.xy.zt.selfdefinewieget;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.provider.Settings;  
  6. import android.widget.TimePicker;  
  7. import android.widget.Toast;  
  8.   
  9. public class WidgetTimePickerActivity extends Activity implements  
  10.         TimePicker.OnTimeChangedListener {  
  11.     private TimePicker mTimePicker;  
  12.   
  13.     @Override  
  14.     public void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.widget_timepicker_layout);  
  17.         init();  
  18.     }  
  19.   
  20.     private void init() {  
  21.         mTimePicker = (TimePicker) findViewById(R.id.show_time_widget);  
  22.         mTimePicker.setOnTimeChangedListener(this);  
  23.   
  24.     }  
  25.   
  26.     public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {  
  27.   
  28.         Toast.makeText(this"Time changed in TimePicker", Toast.LENGTH_LONG)  
  29.                 .show();  
  30.     }  
  31.   
  32.     @Override  
  33.     protected void onResume() {  
  34.         super.onResume();  
  35.         String timeStr = Settings.System.getString(getContentResolver(),  
  36.                 Settings.System.TIME_12_24);  
  37.         boolean is_24 = timeStr != null && timeStr.equals("24");  
  38.         mTimePicker.setIs24HourView(is_24);  
  39.     }  
  40.   
  41. }  
上述代码各个功能不一一详述了,讲讲我在使用中遇到的一点问题,对代码:

[java]  view plain  copy
  1. String timeStr = Settings.System.getString(getContentResolver(),  
  2.                 Settings.System.TIME_12_24);  
  3.         boolean is_24 = timeStr != null && timeStr.equals("24");  
第一句中timeStr的值可能为12、24、null, 如果返回值是null,那么如何判断当前的日期是12小时制还是24小时制? 有兴趣的童鞋可以研究研究。

为完善工程,还是贴出下面代码,以下内容有不清楚的地方参见一步一步学android控件(之一) —— 开始篇

ViewData.java

[java]  view plain  copy
  1. public static final int TIME_PICKER_ID = DATE_PICKER_ID + 1;  
  2.     public static final String TIME_PICKER_NAME = "TimePicker";  
  3. private static final ViewData mTimePicker = new ViewData(TIME_PICKER_NAME,  
  4.             TIME_PICKER_ID);  
  5. View_Datas.add(mTimePicker);  

WidgetsAdapter.java的handleItemClicked方法添加如下内容

[java]  view plain  copy
  1. case ViewData.TIME_PICKER_ID:  
  2.             intent.setClass(mContext, WidgetTimePickerActivity.class);  
  3.             mContext.startActivity(intent);  
  4.             break;  


TimePicker控件就学完了,下一个控件NumberPicker。

最后

以上就是热心紫菜为你收集整理的TimePicker的全部内容,希望文章能够帮你解决TimePicker所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部