一步一步学android控件(之十三) —— TimePicker
来源:互联网 发布:郭广昌 知乎 编辑:程序博客网 时间:2024/05/07 11:33
TimePicker和DatePicker类似——都是用于确保用户选择的时间或日期是有效的。TimePicker是时间选择器,支持24小时制和12(AM/PM)小时制。可以用OnTimeChangedListener监听TimePicker时间变化。
先看看效果图:
24小时制TimePicker 12小时制TimePicker
时间发生改变后,显示一个Toast提示时间改变。
下面实现上面的效果:
1、创建布局文件widget_timepicker_layout.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TimePicker android:id="@+id/show_time_widget" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="104dp" /></RelativeLayout>2、显示屏幕 WidgetTimePickerActivity.java
package com.xy.zt.selfdefinewieget;import android.app.Activity;import android.os.Bundle;import android.provider.Settings;import android.widget.TimePicker;import android.widget.Toast;public class WidgetTimePickerActivity extends Activity implements TimePicker.OnTimeChangedListener { private TimePicker mTimePicker; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.widget_timepicker_layout); init(); } private void init() { mTimePicker = (TimePicker) findViewById(R.id.show_time_widget); mTimePicker.setOnTimeChangedListener(this); } public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { Toast.makeText(this, "Time changed in TimePicker", Toast.LENGTH_LONG) .show(); } @Override protected void onResume() { super.onResume(); String timeStr = Settings.System.getString(getContentResolver(), Settings.System.TIME_12_24); boolean is_24 = timeStr != null && timeStr.equals("24"); mTimePicker.setIs24HourView(is_24); }}上述代码各个功能不一一详述了,讲讲我在使用中遇到的一点问题,对代码:
String timeStr = Settings.System.getString(getContentResolver(), Settings.System.TIME_12_24); boolean is_24 = timeStr != null && timeStr.equals("24");第一句中timeStr的值可能为12、24、null,如果返回值是null,那么如何判断当前的日期是12小时制还是24小时制?有兴趣的童鞋可以研究研究。
为完善工程,还是贴出下面代码,以下内容有不清楚的地方参见一步一步学android控件(之一) —— 开始篇
ViewData.java
public static final int TIME_PICKER_ID = DATE_PICKER_ID + 1; public static final String TIME_PICKER_NAME = "TimePicker";private static final ViewData mTimePicker = new ViewData(TIME_PICKER_NAME, TIME_PICKER_ID);View_Datas.add(mTimePicker);
WidgetsAdapter.java的handleItemClicked方法添加如下内容
case ViewData.TIME_PICKER_ID: intent.setClass(mContext, WidgetTimePickerActivity.class); mContext.startActivity(intent); break;
- 一步一步学android控件(之十三) —— TimePicker
- 一步一步学android控件(之二十三)—— ProgressBar
- 一步一步学android控件(之二) —— TextView
- 一步一步学android控件(之三) —— Button
- 一步一步学android控件(之四) —— EditText
- 一步一步学android控件(之五) —— AutoCompleteTextView
- 一步一步学android控件(之六) —— MultiAutoCompleteTextView
- 一步一步学android控件(之七) —— Toast
- 一步一步学android控件(之八) —— ImageView
- 一步一步学android控件(之九) —— ImageButton
- 一步一步学android控件(之十) —— Gallery
- 一步一步学android控件(之十一) —— Chronometer
- 一步一步学android控件(之十二) —— DatePicker
- 一步一步学android控件(之十四) —— NumberPicker
- 一步一步学android控件(之十六)—— CheckBox
- 一步一步学android之基本控件——TextView组件
- 一步一步学android之基本控件——Button组件
- 一步一步学android之基本控件——EditText组件
- tomcat+eclipse 搭建WEB验证是否成功出现的404问题
- 如何将opencv的处理结果保存由matlab分析
- Code Forces B. Strings of Power 字符串处理
- poj2488
- linux设备驱动之阻塞与非阻塞I/O
- 一步一步学android控件(之十三) —— TimePicker
- 用sin 和cos 的泰勒展开式编程序,求出sin( π/2)、sin(56°)、cos(87°)、cos( π/3)
- android背景选择器selector用法汇总
- 21天教你学会C++
- 链表逆序的循环实现和递归实现
- CSU Warm Up 2
- 显卡工作原理
- UITableView之tableHeaderView
- 二分查找小小总结