1 00:00:00,150 --> 00:00:02,400 로그에서 우리는 올바른 기상 데이터를 받았고 2 00:00:02,400 --> 00:00:04,770 원하던 포멧의 문자 배열로 받았음을 압니다 3 00:00:04,770 --> 00:00:07,860 그래서 UI를 최종적으로 업데이트할 때입니다 4 00:00:07,860 --> 00:00:11,950 AsyncTask가 어떻게 메인 스레드로 5 00:00:11,950 --> 00:00:15,090 데이터를 전달했는지 생각해보세요 Ctrl+O 를 눌러서 6 00:00:15,090 --> 00:00:18,880 AsyncTask에서 override할 수 있는 모든 메소드의 목록을 볼 수 있어요 7 00:00:18,880 --> 00:00:21,190 그 중 하나를 누르면 코드안에서 prepopulate할 겁니다 8 00:00:21,190 --> 00:00:25,220 그 다음에 AsyncTask에서 받은 새로운 데이터로 9 00:00:25,220 --> 00:00:28,730 ArrayAdapter를 업데이트 할 수 있어요 힌트를 드리자면 10 00:00:28,730 --> 00:00:31,890 ForecastAdapter를 전역 변수를 만들 수 있어요 11 00:00:31,890 --> 00:00:35,300 그래서 FetchWeatherTask안에서 접속할 수 있어요 12 00:00:35,300 --> 00:00:37,810 이것은 static class가 아님을 확인하세요 그렇지 않으면 13 00:00:37,810 --> 00:00:41,810 forecast fragment로부터 멤버 변수에 접속할 수 없습니다 14 00:00:41,810 --> 00:00:44,250 그 다음 컴파일해서 앱을 만드세요 그걸 실행해서 15 00:00:44,250 --> 00:00:46,970 refresh 버튼을 누리면 여러분이 위치한 곳의 16 00:00:46,970 --> 00:00:50,320 1주일치 날씨가 나와야 합니다 작동이 되면 17 00:00:50,320 --> 00:00:52,310 로그를 지저분하게 만들지 않으려면 verbose log 를 지우세요 18 00:00:52,310 --> 00:00:54,900 여러분이 이 코드를 작업하면서 19 00:00:54,900 --> 00:00:58,550 unsupported operation exception를 보면 20 00:00:58,550 --> 00:01:00,360 가짜 데이터를 만들 때 21 00:01:00,360 --> 00:01:03,580 ArrayAdapter를 초기화하면 22 00:01:03,580 --> 00:01:05,590 문자열을 배열이 아니라 리스트로 전달하세요 23 00:01:05,590 --> 00:01:07,470 그런 식으로 이 list collection에서 24 00:01:07,470 --> 00:01:10,040 clear 메소드나 add 메소드를 부를 수 있어요