Android 中的 TimePicker函数

首页 / Android入门教程 / Android 中的 TimePicker函数

Android时间选择器可选择24小时制或AM/PM模式下的一天中的时间。时间包括小时,分钟和时钟格式。Android通过TimePicker类提供此功能。

为了使用TimePicker类,您必须首先在activity.xml中定义TimePicker组件。它定义如下-

<TimePicker
   android:id="@+id/timePicker1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content" />
Set Time

之后,您必须创建一个TimePicker类的对象,并获取上面定义的xml组件的引用。其语法如下。

import android.widget.TimePicker;
private TimePicker timePicker1;
timePicker1 = (TimePicker) findViewById(R.id.timePicker1);	

为了获取用户在屏幕上选择的时间,您将使用TimePicker类的getCurrentHour()和getCurrentMinute()方法。它们的语法在下面给出。

int hour = timePicker1.getCurrentHour();
int min = timePicker1.getCurrentMinute();

除了这些方法之外,API中还有其他方法可以更好地控制TimePicker组件。它们在下面列出。

Sr.No Method & description
1

is24HourView()

如果在24小时视图中,此方法返回true,否则返回false

2

isEnabled()

此方法返回此视图的启用状态

3

setCurrentHour(Integer currentHour)

此方法设置当前时间

4

setCurrentMinute(Integer currentMinute)

此方法设置当前分钟

5

setEnabled(boolean enabled)

此方法设置此视图的启用状态

6

setIs24HourView(Boolean is24HourView)

此方法设置为24小时制还是AM/PM模式

7

setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener)

此方法设置指示用户已调整时间的回调

示例

这是一个演示使用TimePicker类的示例。它创建一个基本的Time Picker应用程序,使您可以使用TimePicker Widget设置时间。

以下是修改后的主要Activity文件 src/com.example.timepicker/MainActivity.java 的内容。

package com.example.timepicker;

import java.util.Calendar;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
import android.widget.TimePicker;

public class MainActivity extends Activity {
   private TimePicker timePicker1;
   private TextView time;
   private Calendar calendar;
   private String format = "";

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      
      timePicker1 = (TimePicker) findViewById(R.id.timePicker1);
      time = (TextView) findViewById(R.id.textView1);
      calendar = Calendar.getInstance();
      
      int hour = calendar.get(Calendar.HOUR_OF_DAY);
      int min = calendar.get(Calendar.MINUTE);
      showTime(hour, min);
   }

   public void setTime(View view) {
      int hour = timePicker1.getCurrentHour();
      int min = timePicker1.getCurrentMinute();
      showTime(hour, min);
   }

   public void showTime(int hour, int min) {
      if (hour == 0) {
         hour += 12;
         format = "AM";
      } else if (hour == 12) {
         format = "PM";
      } else if (hour > 12) {
         hour -= 12;
         format = "PM";
      } else {
         format = "AM";
      }
		
      time.setText(new StringBuilder().append(hour).append(" : ").append(min)
      .append(" ").append(format));
   }


}

以下是xml res/layout/activity_main.xml 的修改内容。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   tools:context=".MainActivity" >
   
   <TextView
      android:id="@+id/textView2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:text="@string/time_pick"
      android:textAppearance="?android:attr/textAppearanceMedium" />
      
   <Button
      android:id="@+id/set_button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentBottom="true"
      android:layout_centerHorizontal="true"
      android:layout_marginBottom="180dp"
      android:onClick="setTime"
      android:text="@string/time_save" />
      
   <TimePicker
      android:id="@+id/timePicker1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_above="@+id/set_button"
      android:layout_centerHorizontal="true"
      android:layout_marginBottom="24dp" />
      
   <TextView
      android:id="@+id/textView3"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignLeft="@+id/timePicker1"
      android:layout_alignTop="@+id/set_button"
      android:layout_marginTop="67dp"
      android:text="@string/time_current"
      android:textAppearance="?android:attr/textAppearanceMedium" />
      
   <TextView
      android:id="@+id/textView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_below="@+id/textView3"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="50dp"
      android:text="@string/time_selected"
      android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>

以下是 res/values/string.xml 的内容。

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">TimePicker</string>
   <string name="action_settings">Settings</string>
   <string name="time_picker_example">Time Picker Example</string>
   <string name="time_pick">Pick the time and press save button</string>
   <string name="time_save">Save</string>
   <string name="time_selected"></string>
   <string name="time_current">The Time is:</string>
</resources>

单击"运行 Eclipse运行图标工具栏。 Android Studio将应用程序安装在您的AVD上并启动它,如果您的设置和应用程序一切正常,它将显示在"Emulator"窗口下面-

Android Time Picker Tutorial

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学架构 -〔李运华〕

iOS开发高手课 -〔戴铭〕

Java性能调优实战 -〔刘超〕

OAuth 2.0实战课 -〔王新栋〕

Web安全攻防实战 -〔王昊天〕

全链路压测实战30讲 -〔高楼〕

郭东白的架构课 -〔郭东白〕

Serverless进阶实战课 -〔静远〕

超级访谈:对话毕玄 -〔毕玄〕

好记忆不如烂笔头。留下您的足迹吧 :)