簡易ブラウザの作成(その2)

はじめにこんにちは。タオソフトウェアの谷口と申します。昨今急速に注目を集めているアンドロイド(Android)。本稿では、そんなアンドロイド上で動くアプリケーションを書いてみようと考えている方に向けて、アンドロイド・プログラミングの第一歩についてお伝えしたいと思っています。前回は、 WebViewを

谷口 岳

2010年5月27日 20:00

はじめに

こんにちは。タオソフトウェアの谷口と申します。昨今急速に注目を集めているアンドロイド(Android)。

本稿では、そんなアンドロイド上で動くアプリケーションを書いてみようと考えている方に向けて、アンドロイド・プログラミングの第一歩についてお伝えしたいと思っています。

前回は、 WebViewを使ってGoogleのWebページを表示するところまでを実装しました。

今回は、About画面を追加する作業を通して、画面追加の仕方やメニューの操作方法について説明していきます。

オプションメニューを追加する

アンドロイド端末のmenuキーを押したときに表示されるメニューを「オプション・メニュー」と呼びます。

今回は、About入力画面をオプション・メニューから呼び出せるようにします。

オプションメニューに「About」アイテムを作成するコードを追加しましょう。

MyWebView.javaのMyWebViewクラスに以下のコードを追加します。


public class MyWebView extends Activity {
    ---- 中略 ----
    <i><font color=red>
    //オプション・メニューを作成する
    private static final int ABOUT_MENU_ID = Menu.FIRST;

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        //Aboutダイアログ表示メニュー・アイテム
        MenuItem aboutItem = menu.add(0, ABOUT_MENU_ID, 0 ,R.string.menu_item_name_about);
        aboutItem.setIcon(android.R.drawable.ic_menu_info_details);
        
        return true;
    }
    </font></i>
}

同時に、メニュー・アイテムに編集する文字列(メニュー・アイテム名)をリソースに設定しましょう。

MyWebView/res/values/strings.xmlに、以下のように文字列を追加します。


<resources>
    <string name="app_name">MyWebView</string>
    <i><font color=red>
    <!-- オプション・メニュー用文字列 -->

    <string name="menu_item_name_about">About</string>

    </font></i>
</resources>

順に、説明していきます。

  1. メニュー・アイテムの識別
    ABOUT_MENU_ID がオプション・メニュー内でのメニュー・アイテムを識別するIDになります。
    このIDにAndroidの定数Menu.Firstを設定しています。Androidでは、メニュー・アイテムはこの値以降を使用するように規定されています。
  2. onCreateOptionsMenu
    Androidがメニューを作成するために呼び出すメソッドです。
    このメソッドをオーバー・ライドすることでアプリケーション独自のメニューを作成できます。
  3. menu.add
    このメソッドでメニュー・アイテムを追加しています。
    アイテムを追加する際に先ほどの「ABOUT_MENU_ID」を指定してIDを設定しています。
    R.string.menu_item_name_about は、先ほどリソース内に定義された定数です。メニュー・アイテムに表示される文字列を指定していることになります。
    プログラム内に文字列を直接記述するのではなく、リソースに定義した文字列を読み込むようにすることで、他言語(英語版)などを作成する際にプログラムを修正する必要がなくなるというメリットがあります。
  4. setIcon
    メニュー・アイテムのアイコンを設定します。アイコンはAndroid内にいくつか定義済みのものがあります。
    今回は「android.R.drawable.ic_menu_info_details( i のアイコン)」を使用しています。

では、この段階で実行してみましょう。

GoogleのWebページが表示されたら、Menuキーを押してみましょう。Aboutアイテムが配置されたオプション・メニューが表示されるはずです(図1)。今はメニューを選択しても何も反応せずメニューが隠れるだけです。

次ページからは、メニューが選択されたときにAbout画面を表示するように画面と処理を追加していきます。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30