最近根据项目需要,整理了一个相对比较全面的 WheelView 使用控件,借用之前看到的一句话来说,就是站在巨人肩膀上,进行了一些小调整。
这里先贴上效果图
一般常用的时间选择格式,,单项选择,以及城市联动,这里基本都可以满足了。
这里把 单项选择,和 日期时间选择 给提出到 Util 类中,代码如下:
public class Util {
/**
* 时间选择回调
*/
public interface TimerPickerCallBack {
void onTimeSelect(String date);
}
/**
* 弹出时间选择
*
* @param context
* @param type TimerPickerView 中定义的 选择时间类型
* @param format 时间格式化
* @param callBack 时间选择回调
*/
public static void alertTimerPicker(Context context, TimePickerView.Type type, final String format, final TimerPickerCallBack callBack) {
TimePickerView pvTime = new TimePickerView(context, type);
//控制时间范围
// Calendar calendar = Calendar.getInstance();
// pvTime.setRange(calendar.get(Calendar.YEAR) - 20, calendar.get(Calendar.YEAR));
pvTime.setTime(new Date());
pvTime.setCyclic(false);
pvTime.setCancelable(true);
//时间选择后回调
pvTime.setOnTimeSelectListener(new TimePickerView.OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date) {
// tvTime.setText(getTime(date));
SimpleDateFormat sdf = new SimpleDateFormat(format);
callBack.onTimeSelect(sdf.format(date));
}
});
pvTime.setTextSize(16);
//弹出时间选择器
pvTime.show();
}
/**
* 底部滚轮点击事件回调
*/
public interface OnWheelViewClick {
void onClick(View view, int postion);
}
/**
* 弹出底部滚轮选择
*
* @param context
* @param list
* @param click
*/
public static void alertBottomWheelOption(Context context, ArrayList<?> list,