index.uts 893 B

12345678910111213141516171819202122232425262728293031
  1. import TimePicker from "android.widget.TimePicker"
  2. export class NativeTimePicker {
  3. $element : UniNativeViewElement;
  4. constructor(element : UniNativeViewElement, hour: number, minute: number) {
  5. this.$element = element;
  6. this.bindView(hour, minute);
  7. }
  8. picker : TimePicker | null = null;
  9. bindView(hour: number, minute: number) {
  10. this.picker = new TimePicker(this.$element.getAndroidActivity()!); //构建原生view
  11. this.$element.bindAndroidView(this.picker!);
  12. this.setHour(hour)
  13. this.setMinute(minute)
  14. this.picker?.setOnTimeChangedListener((_, hourOfDay, minute) => {
  15. const detail = {"hour": hourOfDay, "minute": minute}
  16. const event = new UniNativeViewEvent("timechanged", detail)
  17. this.$element.dispatchEvent(event)
  18. })
  19. }
  20. setHour(hour: number) {
  21. this.picker?.setHour(hour.toInt())
  22. }
  23. setMinute(minute: number) {
  24. this.picker?.setMinute(minute.toInt())
  25. }
  26. }