このページの本文へ

前へ 1 2 3 次へ

これで作れる! Androidのアプリケーション ― 第6回

Androidアプリ内で表示されるメニューを作成する

2010年08月05日 12時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

最終的に作成する「世界時計」について具体的に見ていく

 これまでは、サンプルプログラムを元に概念的な話をしましたが、これからは最終的に作る「世界時計」のソースコードを元に具体的なアプリケーションを見ていくことで、いろいろな機能を解説していきます。というのも、実際のアプリケーションでは単純なサンプルプログラムでは表現しきれない部分も出てくるからです。そういうわけで、今回は世界時計というアプリケーションの構造を簡単に解説し、そのあとでAndroidのメニューについて解説することにしましょう。

世界時計はこんな構成になっている

 サンプルとなる世界時計のバイナリは、いつもと同じようにAndroidマーケットから入手可能です(「サンプル06世界時計」で検索してください)。今回もプロジェクトファイルを以下のリンクからダウンロードできるようにしておきます。

Sample06.zip

 このアプリは、タイムゾーンを指定したアイテム(都市名と現在時刻など)を画面に複数表示し、システム側の現在時刻などと比較しながら、現地時間などを調べるものです。海外に取材した際、日本との時差を見ながら、〆切り時間などを調べるのに使うためという筆者の要求を満たすために作ったプログラムです。登録したアイテムのタイムゾーンをシステムのタイムゾーンに設定したりするなどの機能を持ちます。

 画面構成としては、起動時に表示されるメイン画面(メインアクティビティ)がWorldClock.javaに対応しており、

サンプルプログラムである世界時計のメイン画面。都市名とともに4つ並んでいるのが「アイテム」でひとつひとつ都市名と現在時刻が表示される。また背景は時間によって変わるようになっている

各アイテムの編集画面(都市名やタイムゾーンの指定)がEditItem.java

「アイテム」の編集画面。ここでは都市名とタイムゾーンを指定する

そして設定画面がMyPrefs.javaに対応しています。

世界時計の設定画面。12/24時間表示の切り替え、秒表示の有無(現在時刻のみ)、背景色などを指定できる

その他のクラスは、タイムゾーンデータベースの管理(TimeZoneData.java)、アイテムの背景色(TimeColor.java)、アイテムオブジェクト(TzItem.java)、TzItem.java用タイムゾーンデータ(TzData.java)となっています。

 このプログラムは、日本語と英語の言語設定に対応していて、横向き表示用に専用のレイアウトを持っています。このため、リソースは以下のようになっています。

layout/
    edititem.xml:編集画面(アクティビティ)
    item.xml:時刻表示用ビュー(メインアクティビティ用)
    main.xml:メインアクティビティ
    timezonelist.xml:タイムゾーンリスト(ListView)用(編集画面)
layout-land/
    edititem.xml:横向き表示用編集画面(アクティビティ)
    main.xml:横向き表示用メインアクティビティ
menu/
    delete.xml:アイテム削除などのメニュー(編集画面用)
values/
    arrays.xml:配列データ(Preferences.xmlなどで参照)
    ids.xml:IDの定義など
    strings.xml:非日本語用の文字列データ
values-ja/
    strings.xml:日本語用の文字列データ
xml/
    preferences.xml:設定画面定義

 多数のリソースがありますが、縦横表示および言語別になっているためで、プログラムの動作だけを追うには、「layout」「menu」「values」「xml」の各フォルダーのファイルだけを見れば十分です。

 とりあえず、ビルドして、動作させてみて、概略を掴んでみてください。今回からは、このアプリケーションのソースコードを使って、さまざまな機能を解説していくことにします。

前へ 1 2 3 次へ

この連載の記事

注目ニュース

ASCII倶楽部

最新記事

ASCII.jp特設サイト

ASCII.jpメール デジタルMac/iPodマガジン

ASCII.jp RSS2.0 配信中

ピックアップ

富士通パソコンFMVの直販サイト富士通 WEB MART