的日子进行遍历时,在我的Android应用我使用以下Map
到Calendar
类的天映射到String
S:For循环增值通过
Map<Integer, String> map = new HashMap<>(7);
// values of the Calendar field
map.put(Calendar.MONDAY, "Mon"); // 2
map.put(Calendar.TUESDAY, "Tue"); // 3
map.put(Calendar.WEDNESDAY, "Wed"); // 4
map.put(Calendar.THURSDAY, "Thu"); // 5
map.put(Calendar.FRIDAY, "Fri"); // 6
map.put(Calendar.SATURDAY, "Sat"); // 7
map.put(Calendar.SUNDAY, "Sun"); // 1
并添加动态Button
s到一个LinearLayout
与天文字是这样的:
LinearLayout dayLayout = (LinearLayout) findViewById(R.id.layout_days);
for(int i = 1; i <= 7; i++) {
Button button = new Button(this);
button.setText(map.get(i));
dayLayout.addView(button);
}
这工作得很好,但Button
是清单总是从星期日开始的当前不管。
我想重写这个循环,所以它需要考虑一周的第一天。
事情是这样的:
LinearLayout dayLayout = (LinearLayout) findViewById(R.id.layout_days);
int firstDayOfWeek = Calendar.getInstance().getFirstDayOfWeek();
for(int i = firstDayOfWeek; i <= 7; ???) { // this is where i'm stuck
Button button = new Button(this);
button.setText(map.get(i));
dayLayout.addView(button);
}
问题是我无法弄清楚正确的公式,以正确的顺序读取的日子。
如果一周中的第一天是星期一,则循环必须为2 3 4 5 6 7 1
。
我想我必须玩模运营商,我只是不知道如何。
我真的很感谢任何建议,也许我的方法是完全错误的。
为了澄清,你要能够有任何一天是星期的第一天,还是你只是想让它从星期一开始? – MartinByers