サンプルプロジェクト作成
では、今回使用するサンプルアプリを作成していきましょう。以下がプロジェクト情報です。
- Application name:AsyncSample
- Company Domain:android.wings.websarva.com
- Package name:com.websarva.wings.android.fragmentsample
- Project location:C:\…任意のワークフォルダ…\FragmentSample
- Phone and Tablet Minimum SDK:API 15
- Add an activity:Empty Activity
- Activity Name:CityListActivity
- Layout Name:activity_city_list
また、WeatherInfoActivity/activity_weather_info.xmlを追加してください。
その上で、strings.xml、activity_city_list.xml、CityListActivity.java、activity_weather_info.xmlはダウンロードサンプルのソースコードをコピーしてください。これらのソースコードに関しては特に解説の必要はないでしょう。
コピーが終了したら、一度アプリを起動してみてください。以下のような都市のリスト画面が表示されるはずです。
このリストをタップすると、現段階では以下のような画面となるはずです。
この画面を表示する際に、ライブドアの天気情報から現在の天気情報を取得し、表示するようにしていきます。最終的には、以下のような画面にしていきます。
今回使用するライブドアの天気情報の仕様ですが、お天気Webサービス仕様ページに記載されています。
http://weather.livedoor.com/forecast/webservice/json/v1のURLの後ろにパラメータとしてcity=都市のIDを付与してGETリクエストを送信すると、天気情報がJSONデータとして返ってきます。
今回のサンプルでは、都市のリスト画面でタップした際、その都市名と都市のIDをお天気詳細画面へ引き継ぐようにしています。お天気詳細画面ではそのデータを受け取り、上記URLにアクセスして、JSONデータを非同期で受け取るようにします。
なお、都市リスト画面では、全国の都市を掲載するとソースコードの記述が大変なので、筆者が住んでいる近畿圏のリストに限っています。上記ライブドアの仕様に従って、リスト内容は適宜変更していただいて結構です。
