整个应用程序的日历 setFirstDayOfWeek

calendar setFirstDayOfWeek for entire app

我有一个时间注册应用程序,有些用户要求根据他们的喜好更改为一周的第一天。我知道我可以在日历对象上设置一周的第一天,但​​我正在处理很多对象,我不想在所有对象上设置第一天。那么有没有办法为我的整个应用程序设置第一天?

I don't feel like setting the first day on all of them

软件编程有一条黄金法则 "Don't repeat yourself",也称为 DRY 法则。所以你不应该一次又一次地编写相同的代码来设置一周的第一天,但​​有些代码仍然应该为所有这些做这件事,所以....

在这些情况下,常见的方法是建立工厂。

class CalendarFactory {

   public static void setFirstDayOfWeek(Context context, int value){
       // use context to save value in SharedPreferences
   }

   public static Calendar newInstance(Context context) {
       // read the value from SharedPreferences
       // create new GregorianCalendar
       // setFirstDayOfWeek
       // return 
   }
}

那么只需确保始终通过此方法获取日历实例即可。