条件选择器的限制太多了(例如:目前labels只能是3个),不合适,最简单的就是从dialog获取MinuteWheelView的实例再重新设置其Adapter就可以了
val dialog = pvTime.dialog
val minuteWheelView = dialog.findViewById(R.id.min)
minuteWheelView.adapter = HaloMinuteWheelViewAdapter(mPickerMinutes)
public class HaloMinuteWheelViewAdapter implements WheelAdapter {
private int[] minutes;
public HaloMinuteWheelViewAdapter(int[] minutes) {
this.minutes = minutes;
}
@Override
public Object getItem(int index) {
return minutes[index];
}
@Override
public int getItemsCount() {
return minutes.length;
}
@Override
public int indexOf(Object o) {
try {
return (int) o;
} catch (Exception e) {
return -1;
}
}
}
不过这里会有的一个问题,选择后的数据minute其实是mPickerMinutes的position,最后我在回调时对返回的date数据进行转换就行了
val timeSelectListener = OnTimeSelectListener { data: Date?, _ ->
run {
data?.minutes = mPickerMinutes.get(data?.minutes ?: 0)
}
}