■ Editor Activityのレイアウトも編集
Main Activityのときと同様の方法でEditor Activityのレイアウトも編集します。
![]() |
| 図5 Editor Activityのレイアウト |
- - PR -
Main ActivityにもEditor Activityにも「Button01」というIdがありますが、IdはActivity単位でユニークになっていれば同じ名前を使用しても問題ありません。
■ 「Android Resource Editor」でリソースの定義と指定
Idを「TextView01」と指定したい場合、レイアウト定義ファイルには「@+id/TextView01」と記述されています。一見分かりづらいです
@[パッケージ:][+]リソース型/リソース名 |
が、書式は以下のとおりです。
[パッケージ]は省略可能です。[+]は特別な意味を持っているので、後述します。
リソースを参照するにはあらかじめリソースを作成しておかなければなりません。例えばIdを作成するには、「res/values/ids.xml」を作成し、ADTの機能の1つ、「Android Resource Editor」で編集します。
![]() |
| 図4 Android Resource EditorでIdを作成したところ |
作成したXMLファイルの先頭には、以下のXML宣言が必要です。
<?xml version="1.0" encoding="utf-8"?> |
Idの場合は、ids.xmlというファイルを作成してリソースを定義しました。必ずしもこの名前である必要はありませんが、慣習として以下の名前が使用されています。
| 表2 リソースの種類と定義場所と参照方法 | ||||||||||||||||||||||||||||||||||||||||
|
上記では、ids.xmlにIdとして「foo」「bar」を定義しました。XMLでこれらを参照するには「@id/foo」「@id/bar」と記述しますが、Idに限り「@+id/qux」のように「+id」という指定をすることで、あらかじめIdリソースを作成しておかなくてもXMLで定義するほかのリソースにIdを付与可能です。ids.xmlを用意するよりも@+idを使用する方が一般的でしょう。
Idはプログラムから参照するために使用するので、分かりやすい名前を付けるとよいでしょう。
Activityを実装して“Intent”を理解しよう
今回のアプリは画面が2つあるので、Activityも2つ実装します。Main Activityから見ていきましょう。
■ Main Activityの実装
以下はMain Activityの全ソースです。レイアウトをXMLで定義しているので、かなり短くて済みます。
1 package com.example.android.dual; |
15行目でonCreate()をオーバーライドしています。「Activityは、このメソッドが最初に呼び出される」というのを覚えていますか? このメソッドには、最初に行うべきことを実装しています。
16行目は必ず必要なスーパークラスのメソッド呼び出しです。
17行目は、あらかじめ定義しておいたレイアウトを設定しています。
この2つは必ず最初に行わなければなりません。
19行目でIdからButtonのインスタンスを取得し、20行目でボタンが押されたときに呼び出されるOnClickListenerを設定しています。ここで「Intent」というクラスを使用して画面遷移を行っています。
■ 画面遷移のIntent
Intentは、Androidアプリ作成ではActivityに並ぶほど重要なので、クローズアップして詳細に説明します。前述しましたがIntentは英語で「意図」「意志」「目的」といった意味があります。
22 @Override |
24行目でIntentを作成します。Intentはその用途によって作成方法が異なりますが、自分のアプリ内にある画面へ遷移する場合、このように遷移先Activityを指定するのが簡単です。
27行目でIntentにputExtra()メソッドで付加情報を与えています。付加情報は名前と値を渡し、取り出すときには名前を指定します。今回はCharSequenceを1つだけ付加情報として設定していますが、putExtra()はさまざまな型でオーバーロードされていて、複数の異なる型を組み合わせて設定可能なので、渡したいものは何でも渡せると思ってよいでしょう。
28行目では、startActivityForResult()で遷移先のActivityを起動します。第2引数は呼び出し元のActivityで定義したリクエストコードです。このリクエストコードは呼び出し先のActivityから戻ってきたときに使用するので定数にしてあります。
■ 呼び出し先から結果が返された際に呼び出されるメソッド
34 @Override |
35行目のonActivityResult()は、呼び出し先から結果が返された際に呼び出されるメソッドです。36行目でリクエストコードを確認し、37行目で結果コードを確認し、39行目で呼び出し先から渡された付加情報を取り出し、TextViewに設定しています。
次ページでは、Intentを使ってWebブラウザや通話、地図アプリ、ストリートビューを使う方法について説明します。
| Index | ||||||||
|
||||||||
Androidで動く携帯Javaアプリ作成入門 バックナンバー 連載インデックスへ»
- 第1回 Android Market配布を目指しEclipseでHelloWorld!
- 第2回 Androidアプリ作成の基本“Activity”とは何か?
- 第3回 ブラウザや地図、ストリートビューの基、Intentとは?
- 第4回 簡単でワクワクするAndroidウィジェット10連発!
- 第5回 Androidアプリの使いやすさを左右する5つのレイアウト
- 第6回 AndroidでSQLiteのDB操作をするための基礎知識
- 第7回 常駐アプリが作成できるAndroidの“サービス”とは
- 第8回 アプリを国際化してAndroid Marketから世界へ発信
- 第9回 Netbookにも広まるAndroidで、かつてないWeb体験を
- 第10回 Androidのホーム画面に常駐するアプリを作るには
- 第11回 Android 1.6のジェスチャーとテキスト読み上げを使う
- 第12回 SurfaceViewならAndroidで高速描画ゲームが作れる
- 第13回 iPhoneより多彩なAndroidのセンサをアプリで操作
- 第14回 Android 2.1の新機能で作る、美しく燃える“待ち受け”
- 第15回 Android NDKでJNIを使用してアプリを高速化するには
- 第16回 地図/位置情報/GPSを使うAndroidアプリを作るには
- 第17回 もはやケータイに必須のカメラをAndroidで制御しよう
- 第18回 開発者が知っておきたいAndroid 2.2新機能 12連発
- 第19回 XMLレイアウトでAndroidアプリに“設定画面”を追加
- 第20回 Androidアプリで“アニメーション”するための基礎知識
- 第21回 アニメーションでAndroidに独創的な画面エフェクトを
- 第22回 開発者が知って得するAndroid 2.3の新機能18選
- 第23回 Android 3.0の新APIで簡単ドラッグ&ドロップ実装
- 第24回 Androidの画面の大きさの違いを解決するFragments
- 第25回 Compatibility packageで2.x系でもマルチサイズ対応
- 第26回 開発者が知らないと損するAndroid 4.0の新機能44選
- 第27回 Android 4.0でアプリ開発を始めるための環境構築
- 第28回 Android 4.0で注目の顔認識をアプリに組み込むには
| ご意見、ご感想は Smart&Social 会議室へどうぞ |
| Smart&Social フォーラム トップページへ |
TechTargetジャパン
- 検索技術を使うなら知ってないと損する6つのこと (2012/2/9)
ソーシャルアプリなど大規模Webサービスや企業内システムでも欠かせない検索技術のまとめ - AWSとAndroidを直結するSDKで何ができるのか? (2012/2/3)
簡単なコーディングでAndroidアプリからAmazon S3のストレージに直接接続できるサンプルを基にSDKの使い方を紹介 - HTML5/jQuery MobileなどスマホWeb開発記事33選 (2012/1/31)
スマートフォン向けWebアプリを作るための@IT記事のまとめ。HTMLやCSS、JavaScript/jQuery自体の基礎学習記事も紹介 - iPhoneで動くARアプリを作るためのライブラリ10選 (2012/1/25)
ARToolkitをはじめ、iOS(iPhone/iPad)で使えるAR(拡張現実)を実現するためのさまざまなライブラリをサンプルやコードを交えて紹介
|
|
キャリアアップ
スポンサーからのお知らせ
イベントカレンダー
- - PR -



