Day28 - TimePickerDialog

一般来说日期、时间几乎都同时出现
既然昨天学了Android的日期交谈视窗
今天就来学时间的交谈视窗TimePickerDialog八
TimePickerDialog也是Android提供的喔

开始

昨天只透过Toast显示结果
很多人不知道TextView其实也可以设定点击事件
所以今天我们多拉一个TextView出来
并且设定点击事件
完成後,把设定的时间显示在TextView上面

今天一样拿昨天的专案来改

activity_main.xml

把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>

MainActivity.java

宣告一个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();
预设小时:

  • 可以是数值0~23。
  • 也可以抓现在小时:calendar.get(Calendar.HOUR_OF_DAY)

预设分钟:

  • 可以是数值0~59。
  • 也可以抓现在小时:calendar.get(Calendar.MINUTE)

是否使用24小时制:

  • true:24小时的时间交谈视窗
  • false:有AM、PM可以选的时间交谈视窗

一样第二个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);
    }
}

执行结果:

  • 初始画面
    https://ithelp.ithome.com.tw/upload/images/20211003/20141769lac7ZkY3lZ.png

  • 点选进入时间交谈视窗
    https://ithelp.ithome.com.tw/upload/images/20211003/20141769FaJoO8rDbD.png

  • 选好案OK後
    https://ithelp.ithome.com.tw/upload/images/20211003/20141769MzsLsfyDY5.png


<<:  24. 工程师之伤 x 久坐 x 徒手治疗

>>:  数据分析的好夥伴 - Python基础:物件导向(下)

目前销售流程遇到什麽问题?

在探讨这个问题之前,先来分享我们目前的销售流程 搜集名单 透过脸书投放名单型广告,或是 Google...

浅谈特权模式与模式切换

恐龙书上的 User Mode 与 Kernel Mode 在恐龙书中有提到,作业系统一般会在 Us...

[Day 24] 动态元件v-bind:is

大家好,我今天的早餐是吃起司蛋饼好好吃欧~大家都吃什麽咧? 当你在做某些专案时是否会遇到以下问题呢?...

iOS APP 开发 OC 第二十三天,Foundation 的 NSString

tags: OC 30 day 近来到台北工作,好久没有吃到好吃的卤肉饭了。 在看Foundatio...

AI ninja project [day 5] AI RPA系统--表单篇

再来是办公室表单的处理, 假设有些表单只有图像或是只有纸本, 想要汇入成Excel档案时, 我们就可...