在Android应用程序中,时间输入对于应用程序用户来说是很常见的。 传统的时间输入方式包括在EditText中手动输入、使用Spinner或者DatePicker等控件。 这些输入方式都需要用户输入时间的具体细节,如小时,分钟和AM / PM等。 这种输入方式不仅需要用户花费时间输入,还容易出现输入错误,降低了用户的使用体验。 因此,使用时间选择器可以更方便地优化用户输入体验。
一、时间选择器的简介
时间选择器是许多Android应用程序中常用的控件之一。它使用户输入时间变得简单和直观。时间选择器为用户提供了更好的体验,同时可以减少输入错误。 时间选择器允许用户通过滑动小时、分钟和AM / PM钟表轮来设置时间。 此外,时间选择器可以设置宽度和高度,以使其适应特定的应用程序布局。
二、使用时间选择器
在Android Studio中,可以使用DatePickerDialog和TimePickerDialog控件创建时间选择器。在以下示例中,我们将创建一个简单的应用程序来演示如何使用时间选择器。
首先在XML布局文件中添加一个Button和TextView组件,以便用户可以触发时间选择器并显示所选时间。
<Button android:id="@+id/btn_select_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="选择时间" /> <TextView android:id="@+id/tv_selected_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="24sp" />
接下来,在Java代码中添加以下代码以显示时间选择器。
Calendar calendar = Calendar.getInstance(); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { String timeString = String.format("%02d:%02d", hourOfDay, minute); mSelectedTimeTextView.setText(timeString); } }, hour, minute, false); timePickerDialog.show();
在代码中,当前时间将用作默认时间,以便用户可以通过单击Button轻松查看当前时间。当用户单击Button时,时间选择器将以对话框的形式出现,并根据用户所选的时间设置TextView的文本。
三、其他的使用方式
时间选择器可以更加自由地应用于多种场景中,如对话框、PopupWindow等。下面我们将演示其中的一种使用方式,来创建一个可以滑动选择日期和时间的工具条。
首先在XML布局文件中添加一个Toolbar组件。 在该Toolbar中添加一个TextView,用户选择完毕的时间将在此显示。使用TimePicker组件用于选择小时和分钟。使用DatePicker组件用于选择年份和月份。
<android.support.v7.widget.Toolbar android:id="@+id/tool_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:popupTheme="@style/ThemeOverlay.AppCompat.Light" > <TextView android:id="@+id/tv_toolbar_title" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center" android:text="选择时间" android:textColor="@android:color/white" android:textSize="20sp" /> </android.support.v7.widget.Toolbar> <LinearLayout android:id="@+id/time_picker_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/tool_bar" android:background="@android:color/white" android:orientation="vertical"> <DatePicker android:id="@+id/date_picker" android:layout_width="match_parent" android:layout_height="wrap_content" /> <TimePicker android:id="@+id/time_picker" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
接下来,在Java代码中,我们需要进行时间选择器、日期选择器和工具条标题的初始化:
private void initToolbar() { mToolbar.setTitle(""); setSupportActionBar(mToolbar); ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeButtonEnabled(true); actionBar.setHomeAsUpIndicator(R.drawable.ic_arrow_back_white_24dp); } } private void initTimePicker() { mTimePicker.setIs24HourView(false); mTimePicker.setCurrentHour(8); mTimePicker.setCurrentMinute(0); mDatePicker.init(mCalendar.get(Calendar.YEAR), mCalendar.get(Calendar.MONTH), mCalendar.get(Calendar.DAY_OF_MONTH), null); }
在代码中,mToolbar、mTimePicker和mDatePicker是在XML布局文件中定义的组件。由于我们需要在应用程序中使用当前时间进行初始化,因此mCalendar是用于表示日历的Calendar实例。
最后,在Java代码中,我们需要在Toolbar上显示启用关闭按钮并添加时间选择器的显示和引用:
private void initListeners() { mToolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); mDoneTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int year = mDatePicker.getYear(); int month = mDatePicker.getMonth() + 1; int day = mDatePicker.getDayOfMonth(); int hour = mTimePicker.getCurrentHour(); int minute = mTimePicker.getCurrentMinute(); String time = year + "-" + month + "-" + day + " " + hour + ":" + minute; Toast.makeText(getApplicationContext(), time, Toast.LENGTH_SHORT).show(); } }); }
在代码中,mDoneTextView是用于确认用户所选时间的UIButton。当用户单击该按钮时,所有当前日期和时间的设置将组合成时间字符串,并通过Toast显示给用户。
四、总结
通过使用时间选择器来优化Android应用程序中的时间输入体验,可以大大提高用户的体验。在本文中,我们演示了如何使用时间选择器创建工具条和对话框,以及如何自定义时间选择器。当然,这只是时间选择器的基础使用方法,开发者还可以更灵活的使用时间选择器。