1 00:00:00,000 --> 00:00:03,770 これはxmlファイルの中に ハードコーディングされたダミーデータです 2 00:00:03,770 --> 00:00:08,173 ForecastAdapterを使って 実際の気象データを表示しましょう 3 00:00:08,173 --> 00:00:11,111 ここではひとまず すべてのリスト項目に 同じレイアウトを使いますが 4 00:00:11,111 --> 00:00:14,730 次の講義では todayのXMLレイアウトを組み込みます 5 00:00:14,730 --> 00:00:19,452 概念的にForecastAdapterは Cursorの行ごとに対応したリスト項目を 6 00:00:19,452 --> 00:00:21,620 作成するようにロジックを処理します 7 00:00:21,620 --> 00:00:25,158 レッスン1でお話しした ArrayAdapterを思い出してください 8 00:00:25,158 --> 00:00:30,530 ただし データソースは配列ではなく ここではデータベースのCursorです 9 00:00:30,530 --> 00:00:34,860 リスト項目のレイアウトは list_item_forecast.xmlファイルで定義されます 10 00:00:34,860 --> 00:00:38,538 経由するCursorの1行に対して 1つずつ進みながら値を抽出します 11 00:00:38,538 --> 00:00:41,007 これを Viewに対して データをバインドするといいます 12 00:00:41,007 --> 00:00:44,911 それぞれの列の値を取り込み 別のViewに設定するからです 13 00:00:44,911 --> 00:00:49,582 例えば 最高気温の値は最高気温のTextViewに 14 00:00:49,582 --> 00:00:53,186 最低気温の値は最低気温のTextViewに設定されます 15 00:00:53,186 --> 00:00:56,056 次の行でも同様にデータをバインドしましょう 16 00:00:56,056 --> 00:00:59,859 Cursor内の各行に対応したリスト項目を 作成するまで続けます 17 00:00:59,859 --> 00:01:05,065 コードはCursorAdapterクラスから 派生したForecastAdapterを定義しています 18 00:01:05,065 --> 00:01:10,003 CursorAdapterの文書を見ると それはAbstractクラスだとわかるでしょう 19 00:01:10,003 --> 00:01:13,206 オーバーライドするAbstractメソッドは 2つあります 20 00:01:14,080 --> 00:01:17,077 bindViewとnewViewです 21 00:01:17,077 --> 00:01:22,015 newViewメソッドは データの入っていない 新しいリスト項目のレイアウトを返します 22 00:01:22,015 --> 00:01:24,850 bindViewメソッドは 既存のリスト項目のレイアウトを取得し 23 00:01:24,850 --> 00:01:27,380 cursorのデータでそれをアップデートします 24 00:01:27,387 --> 00:01:30,957 ForecastAdapterクラスの中の newViewメソッドの中で 25 00:01:30,957 --> 00:01:34,160 list_item_forecast.xmlレイアウトを インフレートします 26 00:01:34,160 --> 00:01:39,332 そしてbindViewメソッドの中で cursorのデータを個々のViewにバインドします 27 00:01:39,332 --> 00:01:43,937 例えばcursorから天気の説明を読み出します 28 00:01:44,640 --> 00:01:48,174 そしてビュー階層をたどって 29 00:01:48,174 --> 00:01:50,910 id.list_item_textviewというIDの TextViewを探します 30 00:01:50,910 --> 00:01:54,640 TextViewが見つかったら 正しいdescriptionで アップデートすることができます 31 00:01:54,640 --> 00:02:00,950 皆さんのためにbindViewメソッドのコードのGistを 提供していますが TODOは残しています 32 00:02:00,950 --> 00:02:05,720 Gistの中には ヘルパーメソッドと 日付のフォーマット用の文字列も入っています 33 00:02:05,720 --> 00:02:10,490 今の実装では すべての日付が 同じように表示されるからです 34 00:02:10,490 --> 00:02:14,400 しかし ワイヤーフレームでは 親しみやすい表記になっています 35 00:02:14,400 --> 00:02:18,330 例えば 今日、明日、水曜日、木曜日などです 36 00:02:18,330 --> 00:02:22,370 ヘルパーメソッドが作成する 親しみやすい文字列は次のとおりです 37 00:02:22,370 --> 00:02:26,610 “今週”ならば 今日、昨日、それから曜日です 38 00:02:26,610 --> 00:02:31,310 1週間以上先なら “6月8日 月曜日”などと表示されます 39 00:02:31,310 --> 00:02:36,080 アプリをコンパイルして実行したら 実際の気象データが表示され 40 00:02:36,080 --> 00:02:38,320 日付は親しみやすい表記になっているはずです 41 00:02:38,320 --> 00:02:40,590 完了したらチェックを入れましょう