世界を目指せ!Androidアプリ開発入門

第5回 アクティビティの制御と明示的インテント

この記事を読むのに必要な時間:およそ 4 分

今回は,複数のアクティビティの制御と明示的インテントの基礎について解説します。

前回のおさらいと今回のポイント

前回は,アクティビティの動作に関して学びました。具体的には,

  • 画面のようなもの
  • 複数の遷移状態を持っている
  • の遷移状態を理解した上で,アプリのリソース管理を行う

と言った説明をしました。今回は,

  • 複数のアクティビティの制御
  • 明示的インテントの基礎

について解説します。

インテントには,自身のアクティビティを操作する「明示的インテント」と,ブロードキャストメッセージのような「暗黙的インテント」が存在します。今回ご紹介するのは,基本的な明示的インテントの操作ですが,本格的なアプリでも変わらず,今後のアプリ開発に繋がるので,今回紹介するサンプルに手を加えて試行錯誤するなど,自分のものにしてください。

さて,このインテント,あまり聞き慣れない言葉ですが,他のOSには,似た仕組みがなくAndroid OS特有の機構です。技術者としては,他にはない仕組みや考えに触れるのは良い刺激になり,自身の幅を広げることができるはずなので,本格的なアプリの開発予定がなくても,この仕組みを勉強してみることをお勧めします。

主画面から副画面へ遷移するアプリ

では,以下の手順で,前回のサンプルアプリを複数アクティビティを扱うアプリに修正してみます。

  1. 副画面の準備
  2. ソースコードの準備
  3. AndroidMnifiest.xmlへの準備
  4. 動作テスト

アプリの動きは,主画面のボタンを押すと副画面に遷移するものになります。

副画面の準備

まずは,副画面の用意をします。

Androidの画面は,XMLで表現されているのでテキストエディタでも記述できますが,今回はEclipseに内蔵されているリソースエディタを使います。

[ファイル]メニューの[新規][その他]を選択します。

新規ダイアログが表示されたら[Android]から[Android XML File]を選択して,[次へ]をクリックします。

ダイアログが表示されたら,画面1のように設定します。

図1 画面リソースを準備している様子。直接XMLファイルを作成することも可能だが,GUIをで作成することも可能。

図1 画面リソースを準備している様子。直接XMLファイルを作成することも可能だが,GUIをで作成することも可能。

設定値は,以下になります。

File	skeleton_sub_activity.xml
Layoutを選択

[Available Qualifiers]から以下を選択して[Chosen Qualifiers]に移動します。

SizeNormal
RaitoNotLong
OrientationPortrait
PixelDensityMediumDensity
TouchScreenFinger
KeyboardSoft
TextInputQwerty
NavigationTrackball
Dimension480×320
Select the root element for the XML fileは、LinearLayoutを選択します。

Folderが「/res/layout-normal-notlong-port-mdpi-stylus-keyssoft-qwerty-trackball-480x320」となっていますが,気にせず[終了]をクリックします。すると,パッケージの「res」フォルダ以下に「layout-normal-notlong-port-mdpi-stylus-keyssoft-qwerty-trackball-480x320」がフォルダ作成され「skeleton_sub_activity.xml」が格納されます。

「skeleton_sub_activity.xml」「layout」フォルダへドラッグで移動して「layout-normal-notlong-port-mdpi-stylus-keyssoft-qwerty-trackball-480x320」フォルダは削除します。

図2 「res/layout」フォルダ以下に,作成したskeleton_sub_activity.xmlが追加された。

図2 「res/layout」フォルダ以下に,作成したskeleton_sub_activity.xmlが追加された。

「skeleton_sub_activity.xml」をダブルクリックして編集画面を表示します。

編集画面に,図3のように,アウトラインパネルとプロパティパネルが表示されていることを確認してください。アウトラインパネルが表示されてなければ[ウインドウ]メニューの[ビューの表示]からアウトラインを選択します。プロパティパネルも同様に[ウインドウ]メニューの[ビューの表示]から[その他...]を選択します。[ビューの表示]ダイアログから[一般]から[プロパティ]を選択して[OK]をクリックします。

図3 筆者の場合は,画面に右側にアウトライン,プロパティーパネルを配置して使っている。

図3 筆者の場合は,画面に右側にアウトライン,プロパティーパネルを配置して使っている。

まずは,ビューのレイアウト方法を決定します。

アウトラインパネルの[LinearLayout]を選択して,プロパティパネルの[Orientation][vertical]に設定します。次に,コントロールを配置して行きます。

[Views]から[EditText]を選択して,ドラッグしてビューに配置します。同じく[Button]を選択して,ドラッグしてビューに配置します。

ビューの[Orientation][vertical]に設定しているので,それぞれのオブジェクトが縦に並ぶはずです。

図4 コントールを配置している様子。

図4 コントールを配置している様子。

著者プロフィール

傍島康雄(そばじまやすお)

5月30日生まれ。

モバイルデバイスが大好物。それで動くアプリの開発に喜びを感じている。スマートフォン前夜のWindows Mobile,PalmOSのアプリに情熱を傾けていたが,最近は停滞気味でコードを書くよりも文章を書く機会が多くなっており,文章を書くのも,プログラミングと同じくらい奥深い作業だと感じている。

ブログ:http://yasuos.com/blog/

コメント

  • エラーばかりで先に進みません

    エラーを調べならが対処していましたが、コメントをみる限り初心者があまりアプリ開発を学ぶためにはよろしくないようですね。

    Commented : #11  ここでは挫折しそうなんで別のところにいきます (2013/12/27, 22:43)

  • 面倒

    この内容を既に知っているレベルの人ならわかるような書き方だと思います。
    nanasiさんが書いてあるリンクの方が数段読みやすいです。
    書いたのはずいぶん前らしいのに2011/9/23に訂正がなされていたりして、
    本当にこれを読む人は皆さんこちらに移った方がよいかと思います。

    Commented : #10  この回での挫折者 (2011/10/04, 01:45)

  • Re:

    皆さん仰ってる通り、動かないですね…

    android挑戦中さんの訂正のおかげでなんとか次に進めそうですが(^^;

    Commented : #9  通りすがり (2011/08/16, 21:41)

  • バグ多すぎだし、、、

    バグ多すぎだし、、、
    説明になってないし、、、

    ぶっちゃけ、

    これじゃ、

    世界を目指せないですよ。

    全面改訂をお願いします!

    Commented : #8  世界を目指せないよ。 (2011/07/25, 18:27)

  • 誘導

    多分http://www.atmarkit.co.jp/fsmart/articles/android01/android01_1.html
    こっちのサイトの方が分かりやすく丁寧です。

    Commented : #7  nanasi (2011/06/04, 15:54)

1ページ(1/3)    

コメントの記入