我是
靠谱客的博主
热心紫菜,最近开发中收集的这篇文章主要介绍
TimePicker,觉得挺不错的,现在分享给大家,希望可以做个参考。
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;
TimePicker控件就学完了,下一个控件NumberPicker。
发表评论 取消回复