一般來說日期、時間幾乎都同時出現
既然昨天學了Android的日期交談視窗
今天就來學時間的交談視窗TimePickerDialog八
TimePickerDialog也是Android提供的喔
昨天只透過Toast顯示結果
很多人不知道TextView其實也可以設定點擊事件
所以今天我們多拉一個TextView出來
並且設定點擊事件
完成後,把設定的時間顯示在TextView上面
今天一樣拿昨天的專案來改
把Button元件刪掉,今天用不到
拉一個TextView出來
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/tv_dialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="點我選擇時間"
        android:textSize="30dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
宣告一個TextView物件
並跟Button點擊事件一樣
新增setOnClickListener()監聽器
tv_dialog.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        
    }
});
在點擊事件new一個TimePickerDialog()
new TimePickerDialog(MainActivity.this,MainActivity.this,
                        calendar.get(Calendar.HOUR_OF_DAY),
                        calendar.get(Calendar.MINUTE),
                        true).show();
new TimePickerDialog(MainActivity.this,MainActivity.this,預設小時,預設分鐘,是否使用24小時制).show();
預設小時:
預設分鐘:
是否使用24小時制:
一樣第二個MainActivity.this有紅色毛毛蟲
照昨天方式做就行了
加入onTimeSet()方法
public void onTimeSet(TimePicker timePicker, int h, int m) {
}
這方法是:當選完時間執行的程式
完整程式:
package com.example.listview;
import androidx.appcompat.app.AppCompatActivity;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.TimePicker;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity implements TimePickerDialog.OnTimeSetListener {
    Calendar calendar = Calendar.getInstance();
    TextView tv_dialog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv_dialog = findViewById(R.id.tv_dialog);
        tv_dialog.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new TimePickerDialog(MainActivity.this,MainActivity.this,
                        calendar.get(Calendar.HOUR_OF_DAY),
                        calendar.get(Calendar.MINUTE),
                        false).show();
            }
        });
    }
    @Override
    public void onTimeSet(TimePicker timePicker, int h, int m) {
        tv_dialog.setText("時間:"+h+":"+m);
    }
}
執行結果:
初始畫面
點選進入時間交談視窗
選好案OK後