的日子進行遍歷時,在我的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