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" />
之后,您必须创建一个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>
单击"运行工具栏。 Android Studio将应用程序安装在您的AVD上并启动它,如果您的设置和应用程序一切正常,它将显示在"Emulator"窗口下面-
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)