首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从一个timePickerDialog中两次获取小时和分钟作为开始时间和结束时间

timePickerDialog是一个Android提供的时间选择器对话框,用户可以通过它选择特定的小时和分钟。如果我们需要从timePickerDialog中获取两次选择的小时和分钟作为开始时间和结束时间,可以按照以下步骤进行:

  1. 创建一个timePickerDialog对象,并设置好相关属性,如起始时间、时间格式等。
  2. 实现OnTimeSetListener接口,该接口中的onTimeSet()方法将会在用户选择完时间后被调用。
  3. 在onTimeSet()方法中,根据用户选择的时间,获取选择的小时和分钟,并分别保存为开始时间和结束时间。

下面是一个示例代码:

代码语言:txt
复制
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;

import androidx.appcompat.app.AppCompatActivity;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity {

    private TextView startTimeTextView;
    private TextView endTimeTextView;
    private Button selectTimeButton;

    private int startHour, startMinute;
    private int endHour, endMinute;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        startTimeTextView = findViewById(R.id.start_time_textview);
        endTimeTextView = findViewById(R.id.end_time_textview);
        selectTimeButton = findViewById(R.id.select_time_button);

        selectTimeButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 获取当前时间
                Calendar calendar = Calendar.getInstance();
                int currentHour = calendar.get(Calendar.HOUR_OF_DAY);
                int currentMinute = calendar.get(Calendar.MINUTE);

                TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                        // 第一次选择的时间作为开始时间
                        startHour = hourOfDay;
                        startMinute = minute;
                        startTimeTextView.setText(String.format("%02d:%02d", startHour, startMinute));

                        // 弹出第二个timePickerDialog选择结束时间
                        showEndTimePickerDialog();
                    }
                }, currentHour, currentMinute, true);

                timePickerDialog.show();
            }
        });
    }

    private void showEndTimePickerDialog() {
        // 获取当前时间
        Calendar calendar = Calendar.getInstance();
        int currentHour = calendar.get(Calendar.HOUR_OF_DAY);
        int currentMinute = calendar.get(Calendar.MINUTE);

        TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                // 第二次选择的时间作为结束时间
                endHour = hourOfDay;
                endMinute = minute;
                endTimeTextView.setText(String.format("%02d:%02d", endHour, endMinute));
            }
        }, currentHour, currentMinute, true);

        timePickerDialog.show();
    }
}

这段代码创建了一个MainActivity,其中包含两个TextView用于显示选择的开始时间和结束时间,以及一个Button用于触发时间选择器对话框。点击按钮后,首先弹出一个timePickerDialog用于选择开始时间,选择完后再弹出另一个timePickerDialog用于选择结束时间。

注意:以上代码只是一个示例,你需要根据具体的需求进行相应的修改和适配。

对于timePickerDialog的详细使用方式和相关参数,你可以参考Android官方文档

对于与时间相关的处理,腾讯云提供了一些相关产品,如云函数(SCF)用于事件驱动的后端代码运行、云数据库(CDB)用于存储和管理数据等。你可以根据具体业务需求选择适合的腾讯云产品。详细的腾讯云产品介绍和相关链接可以在腾讯云官网中查找。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android实现指定时间定时触发方法

extends TimerTask{ @Override public void run() { Log.i("wxy", "提示"); } } 3.MainActivity.java页面获取选择时间并进行调用...,注意是一次性的,如果关闭Timer得重新实例化, 第二参数为第一次调用的时间,第三参数为两次调用方法的间隔毫秒数 } // 日期加一天 public Date addDay(Date date,...} else { time += minute; } tvSelectTime.setText(time); // 定时触发事件 timeTrigger(hour, minute); // 触发并传递获取到的选择的小时分钟...,最为每天定时调用的时间 } }; TimePickerDialog dialog = new TimePickerDialog(this, listener, 0, 0, true); // 第三参数为默认时间...,最后一参数为是否24小时形式 dialog.show(); } } 4.运行就能显示目标效果了。

1.8K20

时间选择器TimePickerDialog

TimePickerDialog是一android自带的为设置时间而提供的Dialog,使用起来简单,上手快。时常配合Canlendar一起使用。 ?...而在实例化的时候变获取了当前的系统时间。同样可以根据c.set。。()方法对它的属性进行设置。   ...日历对象还有一重要的方法是setTimeInMillis,该方法只有一参数,即距离1970年1月1日0时的毫秒数,调用这个方法,则会根据你传入的毫秒数对日历对象的变量进行相应设置,如果想设置为当前的系统时间...方法有五参数,第一参数(MenuView.this)为弹出的时间对话框所在的activity指针;第二参数是一监听,它监听的是当时间设置完成后的回调,返回的参数有view、设置的hour、设置的...minute;第三参数(hour)第四参数(minute)为弹出的时间对话框的初始显示的小时分钟,这两变量在蓝色代码中进行初始化;第五参数为设置24时显示参数,true代表时间以24时制显示时间

2.2K20
  • 笔记78 | 解读一闹钟代码

    (new Date(alarmsSetting.getNextAlarm()))); } 一行一行看下去就知道,主要是将存储好的时间设置信息(小时分钟,星期),通过 cacluteNextAlarm...刚刚是从开始结束时间开关一直往下看,就基本打通的这个程序主心轴,其他的基本都是簇拥在这个轴心旁的东西: 设置时间按钮: public void showTimePickerDialog(final int...TimePickerFragment窗口,并将获得的小时分钟存起来 setInHour``setInMinutes而这个时间弹出窗口就是编号7: 此类实质上就是继承至 DialogFragment调用...TimePickerDialog向外提供获取小时分钟的接口!...type,启动编号1 AlarmAlertActivity,显示对应的开始结束操作就可以了; 今天感冒了流鼻涕打喷嚏,整理得比较凌乱,看官们将就一下,有什么问题,或者需要源码的可以留言!

    49920

    笔记58 | Android闹钟

    最佳实践方法 在设计重复闹钟过程,你所做出的每一决定都有可能影响到你的应用将会如何使用系统资源。例如,我们假想一会从服务器同步数据的应用。...如果触发时间是过去的某个时间点,闹钟会立即被触发; 闹钟间隔时间。例如,一天一次,每小时一次,每五秒一次,等等; 在闹钟被触发时才被发出的Pending Intent。...也就是说由于 ELAPSED_REALTIME不受地区时区的影响,所以它适合于基于时间差的闹钟(例如一每过30秒触发一次的闹钟)。 REAL_TIME_CLOCK适合于那些依赖于地区位置的闹钟。...如果你只是简单的希望闹钟在一特定的时间间隔被激活(例如每半小时一次),那么你可以使用任意一种 ELAPSED_REALTIME类型的闹钟,通常这会是一更好的选择。...ELAPSEDREALTIMEWAKEUP:从设备启动之后开始算起,度过了某一段特定时间后唤醒设备。 RTC:在某一特定时刻激活Pending Intent,但不会唤醒设备。

    1.6K30

    实战|仅用18行JavaScript构建一倒数计时器

    5.将时钟数据输出为可重复使用的对象 在准备好几天,几小时,几分钟几秒钟之后,我们现在可以将数据作为可重复使用的对象返回: return { total, days, hours, minutes...6.在页面上显示时钟,并在时钟为零时停止时钟 现在我们有了一可以吐出剩余天数、小时分钟秒数的函数,我们就可以建立我们的时钟了。..."Sept 20 2015"], ["Sept 21 2015", "Jul 25 2016"], ["Jul 25 2016", "Jul 25 2030"], ]; Schedule 数组的每个元素代表一开始日期结束日期...如果我们想在整个网站上设置 10 分钟的计时器,则我们不希望在用户转到其他页面时重置该计时器。 一解决方案是将时钟的结束时间保存在一 cookie 。...这样一来,导航到一新的页面就不会把结束时间重置到十分钟以后。 这是逻辑: 如果 Cookie 记录了截止日期,使用该截止日期。

    4.2K41

    【数据采集】1.web页面停留浏览时长采集

    ▌目前四大计算方法 1.当进入某个页面时获取开始时间,页面关闭或者进入一新的页面时(此时视为当前页面已经消失)获取结束时间,页面浏览时长 = 结束时间 - 开始时间。这个方法 优点: a....3.主动在用户主动关闭页面时(onbeforeunload)发送数据包,通过关闭时间打开时间之间的差值来获取页面停留时间。...因此计算两页面 根据行业经验,一般网页端的 Session 切割时间建议设置为 30 分钟(可根据业务自定义时间),即相邻两 pageview 事件的间隔大于 30 分钟就切割。...比如用户 A 打开B站官网后,立即离开座位参加了 1 小时会议,回来后继续浏览其他页面,两次 pageview 事件间隔大于 30 分钟明显是异常值,不能算作同一次会话。...最后,应用到实际的分析,我们不能只看停留,还要看转化。所有的数据都需要仅仅围绕公司的业务实际情况,脱离业务后数据只是数字。 ▌页面停留时间网站停留时间数据的应用?

    2.7K30

    Node Schedule文档翻译

    但是如果你想说"运行这个函数在每个月的第三星期二每个小时的20分50分",你会发现你更想要Node Schedule组件。...他们也触发一scheduled事件,在每次他们调度运行的时候, canceled事件可以让一调用在它执行之前被取消(这两事件都接受一JavaScript日期对象作为参数)....; }); 你也可以使用数组来指定一允许值的列表,Range 对象来指定一系列的开始结束值,带有可选的步骤参数。...; }); 设置开始时间结束时间 这个例子,它将在五秒后开始,然后十秒后结束.之前一样支持规则。...; }); 处理任务任务调度 这儿有一些函数来从一任务获取信息以及处理任务调度 job.cancel(reshedule) 你可以让任何任务失效,使用 cancel() 方法: j.cancel

    1.7K20

    MIT团队新机器学习算法可以使医学图像扫描速度提高1000倍

    然而,这个过程通常需要两小时或更长的时间,因为传统系统在组合扫描精确地对齐潜在的一百万像素。...它会获取有关如何对齐图像估计一些最佳对齐参数的信息。训练结束后,它使用这些参数将一图像的所有像素同时映射到另一图像。...这使用一台普通的计算机将配准时间缩短到一两分钟,或使用与最先进的系统相当的精度的GPU在不到一秒钟的时间内完成任务。...当进行两次新的扫描时,一简单的数学函数将使用这些优化的参数快速计算两次扫描中体素的准确对齐信息。...“今天,在手术过程,他们不能真正重叠图像,因为这需要两小时,手术仍在进行,但是,如果只需要一秒钟,你可以想象它是可行的。”

    47030

    给程序员的 8 提高开发效率的建议

    2、每天从最困难的任务开始 在日常任务很容易迷失方向,拖延也是开发人员的普遍习惯——尤其是当你作为自由职业者工作并且必须管理自己的截止日期时。...它适用于 25 分钟时间段,包括 5 分钟的短暂休息 10 分钟的长时间休息。Pomodoro 技术在开发者社区变得如此流行,甚至有你可以在工作时使用的Pomodoro 应用程序。...时间跟踪可以提高你的工作效率,主要是因为你可以看到你在白天是如何度过你的时间的,这样你就可以排除可能的干扰。如果您是自由职业者,时间跟踪器也可以成为天赐之物,因为它们可以帮助您按小时向客户收费。...例如,每小时查看一次电子邮件、在视频网站上观看新的视频教程或在 Slack 上与同事聊天都可以被视为与工作相关的任务,但如果你在这些任务上花费太多时间,你可能会发现自己没有到一天结束时完成了那么多。...虽然一开始养成一新习惯可能很困难,但它很快就会成为第二天性。请记住,实验是生产力的关键。如果您尝试了一种对您不起作用的技术或工具,请放弃它,然后继续下一,直到找到最适合您的工作流程个性的那个。

    60420

    100 Linux 命令(9)-计划任务

    这是100 Linux 命令的第76命令,关于如何编写计划任务条目。...前5段用于设定时间(执行频率),分别表示每分钟、每小时、每天、每月、每星期几。 “*”表示从每个时间段的开始结束。例如在小时上设置*,表示0,1,2,3...22,23的意思。...每个时间段,都可以使用逗号“,”表示枚举,如“0,30,50 * * * *”表示每个小时的整点、第30分钟、第50分钟都指定该任务。...每个时间段,都可以使用“-”定义范围,可以结合逗号使用,如“00,20-30,50”表示每个小时的整点,20-30分钟的每分钟,第50分钟都执行指定任务。...例如每月的15号执行该任务,同时又定义了周三执行该任务,正常无冲突情况下,将在周三每月15号执行,但如果某月的15号同时是周三,则该任务在此日执行两次。因此,应该尽力避免同时定义周日的任务。

    1.3K41

    PAT 1016 Phone Bills (25分) sort() + map 逻辑较为复杂

    单独的on没有off,或以off开始的记录都被认为是无效记录。 要求输出 给出的所有记录,按照名字的先后顺序,每个人所有有效的通话记录(按照时间顺序)及每次的花费,所有通话的总花费。...思路分析 首先创建结构体 Record 保存每一条记录信息,由于每条记录的时间都是 月:日:时:分,又因为所有记录都是同一月的,所以我们把时间都转成 从本月00:00开始分钟数。...我们引入一“第25小时”或者说是叫“全小时”的概念,表示一整天通话,那么在这个小时内 每分钟的费用就是 前24小时各个小时内资费的,用rate[24]存储。...(就相当于每个小时的每一分钟都在通话,那么一分钟的花费不就是每个小时分钟的花费的?) 结合 1 2,我们能比较方便的计算出 一次通话的费用。...int time; // 为了计算两次通话的时间差,计算出每条记录开始时刻对应的从每月0号00:00对应的分钟数,之后做差即可得到本次通话时长 }; // rate[0]表示从0-1小时,每分钟几分钱

    43920

    基于uFUN开发板的心率计(二)动态阈值算法获取心率值

    上一篇文章:基于uFUN开发板的心率计(一)DMA方式获取传感器数据,介绍了如何获取PulseSensor心率传感器的电压值,并对硬件电路进行了计算分析。...IBIBPM 心率,指的是一分钟内的心跳次数,得到心率最笨的方法就是计时一分钟后数有多少次脉搏。但这样的话每次测心率都要等上个一分钟才有一次结果,效率极低。...另外一种方法是,测量相邻两次脉搏的时间间隔,再用一分钟除以这个间隔得出心率。这样的好处是可以实时计算脉搏,效率高。 IBI: 相邻两次脉搏的时间间隔,单位:s。 BPM:心率,一分钟内的心跳次数。...」的特征点,记录当前时间 寻找下一特征点并记录时间,算出两点的时间差值,即相邻两次脉搏的时间间隔 IBI 由 IBI 计算心率值 BPM 代码如下,程序中使用一 50 长度的数组进行采样数据缓存,...LED; i = 0; } }} 将传感器正面轻按在食指上,单片机在每检测到一脉搏时打印心率值 BPM 相邻两次脉搏的时间间隔 IBI,实测结果还算稳定。

    1.3K10
    领券