【问题标题】:What is the alternative method in Harmony OS for setFirstDayOfWeek() in DatePicker in Android OS?在 Android OS 中的 DatePicker 中,Harmony OS 中 setFirstDayOfWeek() 的替代方法是什么?
【发布时间】:2021-07-29 06:02:27
【问题描述】:

我正在编写一个自定义组件,允许用户使用 JAVA SDK 从日历中选择日期。我想将一天设置为一周的第一天(例如星期一),然后将日历显示为一周的第一天(日历的第一列将是设置的那一天)。

在 Android 中,我们在 DatePicker 中有 setFirstDayOfWeek(int firstDayOfWeek) 方法,它为我们做这件事。

Harmony OS 的DatePicker 中的上述替代方案是什么?

问候,苏布汉姆

【问题讨论】:

    标签: java android huawei-mobile-services huawei-developers harmonyos


    【解决方案1】:

    目前还没有直接的api接口来实现,但是可以使用工具类代码来实现。如下:

    public static LocalDateTime getMondayForThisWeek(LocalDate localDate) {
           LocalDateTime monday = LocalDateTime.of(localDate, LocalTime.MIN).with(DayOfWeek.MONDAY);
           return monday;
       }
    

    参考代码:

    Tool类核心代码:

    public class LocalDateTimeUtil {
    
    ...
    
        /***
    
         * constructor method
    
         */
    
        private LocalDateTimeUtil() {
    
        }
    
    
    
        /**
    
         * Obtains the date of the Monday of the week to which the specified date belongs.
         *
    
         * @param localDate Time
         * @return LocalDateTime
    
         */
    
        public static LocalDateTime getMondayForThisWeek(LocalDate localDate) {
    
            LocalDateTime monday = LocalDateTime.of(localDate, LocalTime.MIN).with(DayOfWeek.MONDAY);
    
            return monday;
    
        }
    
    
    
        /**
    
         * Obtains the date of the Sunday of the week to which the specified date belongs.
    
         *
    
         * @param localDate Time
    
         * @return LocalDateTime
    
         */
    
        public static LocalDateTime getSundayForThisWeek(LocalDate localDate) {
    
            LocalDateTime sunday = LocalDateTime.of(localDate, LocalTime.MIN).with(DayOfWeek.SUNDAY);
    
            return sunday;
    
        }
    
    ...
    
    }
    
    

    XML文件布局:

    <?xml version="1.0" encoding="utf-8"?>
    
    <DirectionalLayout
    
        xmlns:ohos="http://schemas.huawei.com/res/ohos"
    
        ohos:height="match_parent"
    
        ohos:width="match_parent"
    
        ohos:orientation="vertical"
    
        >
    
       <DatePicker
    
           ohos:id="$+id:data_picker"
    
           ohos:height="match_content"
    
           ohos:width="match_parent"
    
           ohos:background_element="#C89FDEFF"
    
           />
    
    </DirectionalLayout>
    

    AbilitySlice中的代码:

    public class MainAbilitySlice extends AbilitySlice {
    
        private DatePicker datePicker;
    
        @Override
    
        public void onStart(Intent intent) {
    
            super.onStart(intent);
    
            super.setUIContent(ResourceTable.Layout_ability_main);
    
            initView();
    
        }
    
    
    
        private void initView() {
    
            if (findComponentById(ResourceTable.Id_data_picker) instanceof DatePicker) {
    
                datePicker = (DatePicker) findComponentById(ResourceTable.Id_data_picker);
    
            }
    
            if (datePicker != null) {
    
                // If you select Monday or Sunday as the first day of a week, select the corresponding method. This example selects Monday as the first day of the week
    
                LocalDateTime mondayForThisWeek = LocalDateTimeUtil.getMondayForThisWeek(LocalDate.now());
    
                datePicker.updateDate(mondayForThisWeek.getYear(), mondayForThisWeek.getMonth().getValue(), mondayForThisWeek.getDayOfMonth());
    
            }
    
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多