首页
学习
活动
专区
工具
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)用于存储和管理数据等。你可以根据具体业务需求选择适合的腾讯云产品。详细的腾讯云产品介绍和相关链接可以在腾讯云官网中查找。

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

相关·内容

时间选择器TimePickerDialog

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

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

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

    50520

    笔记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.9K30

    Node Schedule文档翻译

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

    1.7K20

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

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

    49030

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

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

    74020

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

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

    1.3K10

    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小时,每分钟几分钱

    45120

    前端问答:如何使用JavaScript计算两个日期之间的时间差

    在我们日常开发中,有时需要计算两个日期之间的时间差,比如在一个倒计时功能中,或者是需要展示某个活动从开始到结束所经过的时间。今天就给大家介绍一个简单的JavaScript方法,可以轻松实现这个需求。...场景描述 假设我们在做一个线上活动,需要计算用户报名时间和活动开始时间之间的剩余天数、小时、分钟和秒。通过JavaScript可以很方便地实现这一功能。...下面我们通过一个具体的例子来讲解如何实现这个需求。 示例代码 首先,我们需要创建两个日期对象,一个表示当前时间,另一个表示活动开始的时间。接着,通过时间戳的方式计算出它们之间的差值。...业务场景中的实际应用 假设我们在开发一个活动页面,页面上显示距离活动开始的倒计时。通过这种方式计算出精确的天数、小时、分钟和秒,能够让用户清晰直观地看到剩余的时间,提升用户体验。...结语 通过上面的代码示例和讲解,我们学会了如何使用JavaScript简单快速地计算两个日期之间的时间差。这个技巧在很多场景中都能派上用场,尤其是在处理倒计时、提醒等功能时非常实用。

    26010

    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
    领券