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

如何在Android中的TimePickerDialog中设置自定义分钟间隔

在Android中,要在TimePickerDialog中设置自定义分钟间隔,可以通过自定义TimePickerDialog实现。以下是一个示例代码:

代码语言:java
复制
import android.app.TimePickerDialog;
import android.content.Context;
import android.os.Bundle;
import android.widget.TimePicker;

import androidx.annotation.NonNull;

public class CustomTimePickerDialog extends TimePickerDialog {

    private final int mMinuteInterval;

    public CustomTimePickerDialog(@NonNull Context context, int themeResId, int minuteInterval, OnTimeSetListener listener, int hourOfDay, int minute, boolean is24HourView) {
        super(context, themeResId, listener, hourOfDay, minute, is24HourView);
        mMinuteInterval = minuteInterval;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        TimePicker timePicker = (TimePicker) findViewById(android.R.id.timePicker1);
        if (timePicker != null) {
            timePicker.setMinute(mMinuteInterval * (timePicker.getMinute() / mMinuteInterval));
            timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
                @Override
                public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                    if (minute % mMinuteInterval != 0) {
                        int newMinute = mMinuteInterval * (minute / mMinuteInterval);
                        view.setCurrentMinute(newMinute);
                    }
                }
            });
        }
    }
}

在这个示例中,我们创建了一个名为CustomTimePickerDialog的自定义TimePickerDialog类,并在其中设置了一个名为mMinuteInterval的成员变量,用于存储自定义的分钟间隔。

在onCreate方法中,我们获取了TimePicker控件,并设置了其分钟间隔。我们还添加了一个OnTimeChangedListener,以确保在用户更改分钟时,分钟值始终是自定义分钟间隔的倍数。

要使用此自定义TimePickerDialog,请在您的代码中创建一个新的CustomTimePickerDialog实例,并传递所需的参数,包括自定义分钟间隔。例如:

代码语言:java
复制
int minuteInterval = 15;
CustomTimePickerDialog timePickerDialog = new CustomTimePickerDialog(this, null, minuteInterval, new TimePickerDialog.OnTimeSetListener() {
    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        // 处理用户设置的时间
    }
}, 12, 0, true);
timePickerDialog.show();

这将创建一个具有自定义分钟间隔为15分钟的TimePickerDialog,并在用户设置时间时调用OnTimeSetListener。

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

相关·内容

Android开发笔记(二十三)文件对话框FileDialog

对话框是人机交互的有力工具,Android自带了几个常用的对话框,包括AlertDialog提示对话框、ProgressDialog进度对话框、DatePickerDialog日期选择对话框、TimePickerDialog时间选择对话框等等。其中最常用的是AlertDialog,而且需要自定义对话框的时候,多半也是在AlertDialog.Builder基础上集成其他的控件,具体参见《Android开发笔记(六十六)自定义对话框》。ProgressDialog也比较常用,在系统加载信息或者等待其他事情时,都可能需要显示ProgressDialog。相比之下,DatePickerDialog和TimePickerDialog用的不多,因为这两个对话框上的文字依赖于系统的语言设置,如果系统默认语言是英文,DatePickerDialog和TimePickerDialog上的文字也是英文,而且还无法设置为中文;另一个原因是这两个对话框的布局和风格无法自定义,如果想加上别的提示信息,就得自己重写代码了。接下来我们就使用AlertDialog来重写日期和时间对话框。 首先要提供日期对话框和时间对话框的布局文件,例如R.layout.dialog_format_date和R.layout.dialog_format_time,布局文件中需分别集成DatePicker和TimePicker控件。 然后分别初始化DatePicker和TimePicker对象,分别设置当前日期与当前时间。 接着创建一个AlertDialog.Builder对象,在该Builder对象中嵌入布局视图,并设置标题、确定按钮、取消按钮。 最后还要提供一个回调接口,用于主页面上处理日期和时间的选择事件,同时在确定按钮的点击事件中要触发该回调接口的方法。 下面是重写后的日期和时间对话框的代码

03
领券