在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/zh-tw/n/255148.html
微信掃一掃
支付寶掃一掃