在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应用程序中的时间输入体验,可以大大提高用户的体验。在本文中,我们演示了如何使用时间选择器创建工具条和对话框,以及如何自定义时间选择器。当然,这只是时间选择器的基础使用方法,开发者还可以更灵活的使用时间选择器。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/255148.html
微信扫一扫
支付宝扫一扫