質問編集履歴
1
関連ファイルを追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -129,6 +129,7 @@
|
|
129
129
|
`エラー: シンボルを見つけられません`
|
130
130
|
`シンボル: メソッド setAdapter(CalendarAdapter)`
|
131
131
|
`場所: タイプTableLayoutの変数 calendarTableLayout`
|
132
|
+
|
132
133
|
```ここに言語を入力
|
133
134
|
import android.os.Bundle;
|
134
135
|
import android.support.v4.app.Fragment;
|
@@ -182,11 +183,91 @@
|
|
182
183
|
|
183
184
|
calendarTableLayout = view.findViewById(R.id.calendarTableLayout);
|
184
185
|
mCalendarAdapter = new CalendarAdapter(getActivity());
|
185
|
-
calendarTableLayout.setAdapter(mCalendarAdapter);
|
186
|
+
calendarTableLayout.setAdapter(mCalendarAdapter); //エラー箇所
|
186
187
|
monthText.setText(mCalendarAdapter.getTitle());
|
187
188
|
|
188
189
|
return view;
|
189
190
|
}
|
190
191
|
|
191
192
|
}
|
193
|
+
```
|
194
|
+
---
|
195
|
+
関連ファイル
|
196
|
+
|
197
|
+
・DateManager.java
|
198
|
+
```ここに言語を入力
|
199
|
+
import java.text.SimpleDateFormat;
|
200
|
+
import java.util.ArrayList;
|
201
|
+
import java.util.Calendar;
|
202
|
+
import java.util.Date;
|
203
|
+
import java.util.List;
|
204
|
+
import java.util.Locale;
|
205
|
+
|
206
|
+
public class DateManager{
|
207
|
+
Calendar mCalendar;
|
208
|
+
|
209
|
+
public DateManager(){
|
210
|
+
mCalendar = Calendar.getInstance();
|
211
|
+
}
|
212
|
+
|
213
|
+
//当月の要素を取得
|
214
|
+
public List<Date> getDays(){
|
215
|
+
//現在の状態を保持
|
216
|
+
Date startDate = mCalendar.getTime();
|
217
|
+
|
218
|
+
//GridViewに表示するマスの合計を計算
|
219
|
+
int count = getWeeks() * 7 ;
|
220
|
+
|
221
|
+
//当月のカレンダーに表示される前月分の日数を計算
|
222
|
+
mCalendar.set(Calendar.DATE, 1);
|
223
|
+
int dayOfWeek = mCalendar.get(Calendar.DAY_OF_WEEK) - 1;
|
224
|
+
mCalendar.add(Calendar.DATE, -dayOfWeek);
|
225
|
+
|
226
|
+
List<Date> days = new ArrayList<>();
|
227
|
+
|
228
|
+
for (int i = 0; i < count; i ++){
|
229
|
+
days.add(mCalendar.getTime());
|
230
|
+
mCalendar.add(Calendar.DATE, 1);
|
231
|
+
}
|
232
|
+
|
233
|
+
//状態を復元
|
234
|
+
mCalendar.setTime(startDate);
|
235
|
+
|
236
|
+
return days;
|
237
|
+
}
|
238
|
+
|
239
|
+
//当月かどうか確認
|
240
|
+
public boolean isCurrentMonth(Date date){
|
241
|
+
SimpleDateFormat format = new SimpleDateFormat("yyyy.MM", Locale.US);
|
242
|
+
String currentMonth = format.format(mCalendar.getTime());
|
243
|
+
if (currentMonth.equals(format.format(date))){
|
244
|
+
return true;
|
245
|
+
}else {
|
246
|
+
return false;
|
247
|
+
}
|
248
|
+
}
|
249
|
+
|
250
|
+
//週数を取得
|
251
|
+
public int getWeeks(){
|
252
|
+
return mCalendar.getActualMaximum(Calendar.WEEK_OF_MONTH);
|
253
|
+
}
|
254
|
+
|
255
|
+
//曜日を取得
|
256
|
+
public int getDayOfWeek(Date date) {
|
257
|
+
Calendar calendar = Calendar.getInstance();
|
258
|
+
calendar.setTime(date);
|
259
|
+
return calendar.get(Calendar.DAY_OF_WEEK);
|
260
|
+
}
|
261
|
+
|
262
|
+
//翌月へ
|
263
|
+
public void nextMonth(){
|
264
|
+
mCalendar.add(Calendar.MONTH, 1);
|
265
|
+
}
|
266
|
+
|
267
|
+
//前月へ
|
268
|
+
public void prevMonth(){
|
269
|
+
mCalendar.add(Calendar.MONTH, -1);
|
270
|
+
}
|
271
|
+
|
272
|
+
}
|
192
273
|
```
|