Android时间选择器以及回调的使用
16lz
2022-07-05
在iOS开发中使用block回调是很普遍的,当然在Android中也有回调可以使用,但是形式不太一样,更像是iOS中的代理模式,在这里我们不单独介绍Android中回调的使用,而是结合时间选择器一起使用,简单粗暴直接上代码
package com.example.jizhigang.crm_android_j.utils;import android.app.Activity;import android.app.DatePickerDialog;import android.app.TimePickerDialog;import android.util.Log;import android.widget.DatePicker;import android.widget.TimePicker;import java.util.Calendar;/*时间、日期选择器*/public class DatePickerHelper { /* * 日期选择器的回调 * 格式 年-月-日 * */ public interface OnDateSelectedBlock { void onDateSelected(int year, int month, int dayOfMonth); } /* * 时间选择器的回调 * 格式 时-分 * */ public interface OnTimeSelectedBlock { void onTimeSelected(int hour, int min); } /** * 日期选择 年-月-日 * @param activity * @param themeResId * @param calendar */ public static void showDatePickerDialog(final Activity activity, int themeResId, Calendar calendar, final OnDateSelectedBlock block) { // 直接创建一个DatePickerDialog对话框实例,并将它显示出来 new DatePickerDialog(activity, themeResId, new DatePickerDialog.OnDateSetListener() { // 绑定监听器(How the parent is notified that the date is set.) @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // 此处得到选择的时间,可以进行你想要的操作 block.onDateSelected(year,monthOfYear,dayOfMonth); } } // 设置初始日期 , calendar.get(Calendar.YEAR) , calendar.get(Calendar.MONTH) , calendar.get(Calendar.DAY_OF_MONTH) ).show(); } /** * 时间选择 时-分 * @param activity * @param themeResId * @param calendar */ public static void showTimePickerDialog(Activity activity, int themeResId, Calendar calendar, final OnTimeSelectedBlock block) { // Calendar c = Calendar.getInstance(); // 创建一个TimePickerDialog实例,并把它显示出来 // 解释一哈,Activity是context的子类 new TimePickerDialog( activity,themeResId, // 绑定监听器 new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { block.onTimeSelected(hourOfDay,minute); } } // 设置初始时间 , calendar.get(Calendar.HOUR_OF_DAY) , calendar.get(Calendar.MINUTE) // true表示采用24小时制 ,true).show(); } }
首先在需要使用的activity中声明
/*日期回调*/ private DatePickerHelper.OnDateSelectedBlock dateSelectedBlock = new DatePickerHelper.OnDateSelectedBlock() { @Override public void onDateSelected(int year, int month, int dayOfMonth) { Log.d("日期选择器回调",String.valueOf(year)+"年"+String.valueOf(month+1)+"月"+String.valueOf(dayOfMonth)+"号"); } }; /*时间回调*/ private DatePickerHelper.OnTimeSelectedBlock timeSelectedBlock = new DatePickerHelper.OnTimeSelectedBlock() { @Override public void onTimeSelected(int hour, int min) { Log.d("时间选择器回调",String.valueOf(hour)+"时"+String.valueOf(min)+"分"); } };
使用方法
/*年月日时间选择器*/Calendar calendar= Calendar.getInstance(Locale.CHINA);DatePickerHelper.showDatePickerDialog(getActivity(),2,calendar,dateSelectedBlock);
img-01.jpg /*时分时间选择器*/Calendar calendar= Calendar.getInstance(Locale.CHINA);DatePickerHelper.showTimePickerDialog(getActivity(),2,calendar,timeSelectedBlock);
img-02.jpg 我们在这里将themeResId设置为2是这种样式,修改这个值为其他值还有其他样式可选,这里就不详细介绍了。
回调参考文章
https://blog.csdn.net/qq_31881469/article/details/80089675
时间选择器参考文章
https://blog.csdn.net/ceaningking/article/details/89916700
更多相关文章
- 箭头函数的基础使用
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
- android 使用html5作布局文件: webview跟javascript交互
- Android(安卓)Resource介绍和使用
- "Failed to fetch URL https://dl-ssl.google.com/android/repos
- 使用NetBeans搭建Android开发环境
- android 零星调试笔记