最新の記事アプリケーションアクティビティ、インテント、サービスについてデバイスAndroidでのデバイス制御について。地磁気センサ、加速度センサなどマルチメディアグラフィックス、音楽や動画再生などマルチメディア処理についてユーザインターフェースAndroidのユーザインターフェイスについて、またユーザインターフェイスを提供するコンポーネントの話題について。リソースAndroidでのアイコン、画像、文字列、ローカライゼーションなどHacksマッシュアップ開発環境Androidの開発環境など。startedでは、同一アプリケーション内での画面遷移をIntentで行いました。今回は暗黙的Intentを使って、他アプリケーションを呼び出してみます。暗黙的Intentは、所定の動作(例:ブラウザを起動)のみ指定してアプリケーションを起動します。起動される側のアプリケーションは、反応したいイベント(ブラウザでURLを表示する、というAction)に対して返事をします。明示的Intentで単純に標準の「ブラウザ」アプリケーションを指定しても、Webを見るという動作は実現できます。標準のアプリケーションを使っていれば一見問題無いように思えますが、利用者は好きなアプリケーションを選べなくなってしまいます。(※また、ブラウザが入っていないシステムでは、残念ながら動かないでしょう。)暗黙的IntentはAction(動作)を指定して起動対象を決めることで、アプリケーションが緩やかに連携します。回りくどいように見えますが、明示的に指定するより、アプリケーション間の連携が格段に行いやすくなっています。暗黙的Intentで重要なメソッドは次の3つです。メソッド概要create()ダイアログの生成のみ行うshow()ダイアログの生成と表示を同時に行うそれでは、サンプルプログラムで確認してみましょう。サンプルプログラム暗黙的Intentを用いることで、様々なアプリケーションと連携することができます。今回のサンプルプログラムでは、6種類のボタンを用意しました。ボタン説明ブラウザボタンブラウザを起動し、本サイトのトップページへ接続する。マップボタンマップアプリを起動する。マーケットボタンマーケットアプリを起動する。電話ボタン電話アプリを表示する。文字列ボタン文字列を他アプリケーションへ受け渡す。メールボタンメーラーアプリを起動する。イベントの設定イベントを受け取る側のアプリケーションは、自分が受け取りたいイベントのみ反応します。そのため、イベントを送る側のアプリケーションでは、送るイベントの種類を指定してあげる必要があります。ブラウザを表示するイベントを設定するには、次のようにします。Intent(Intent.ACTION_VIEW,Uri.parse(&quot;http://techbooster.org/&quot;));IntentクラスのIntentメソッドの第1引数で、アクションの種類を指定します。第2引数には、ブラウザで表示したいサイトのURLを指定します。今回は、本サイトのトップページを表示するように指定しています。他にも、様々なイベントがあります。OptionMenuを使う際に大事なメソッドメソッド説明ActivityクラスonCreateOptionsMenuメソッドこのメソッドの中で必要に応じてメニューボタンが押された際に表示されるメニューにメニューアイテム(メニューに表示されるそれぞれの項目)を追加するActivityクラスonOptionsItemSelectedメソッドメニューアイテムが選択された時に呼び出されるIntentメソッドを用いて、受け渡すイベントを指定しました。次に、イベントの受け渡しを開始するには、以下のいずれかのメソッドを用います。Int)startActivity(Intent)startActivityForResultメソッドとstartActivityメソッドのどちらもインテントでActivityを開始できますが、返値の必要性に応じて、Intent起動メソッドを使い分けることもできます。Int)の第2引数Intは正でなければなりません。負値を指定した場合、startActivity(Intent)と同じ挙動になり、返り値が通知されないからです。返り値処理を実装するには、次のようにします。Int)の第2引数です。複数のIntentからonActivityResultメソッドが呼び出されるケースがあるので、第1引数requestCodeで使い分けます。自分の呼び出し元のアクティビティに戻ってきます。(その際、onActivityResultに実行結果が返ります)。Intentの受け渡しの開始からonActivityResultへ実行結果が返ってくる流れは、次の図のようになります。それでは、全体のサンプルプログラムを見てみましょう。&quot;canceled&quot;);}}}}9~42行目のonClickメソッドの中で各イベントを設定し、暗黙的インテントを送ります。Intent(Intent.ACTION_VIEW,Uri.parse(&quot;http://techbooster.org/&quot;));ブラウザボタンを選択すると、インストールされているブラウザアプリのリストが表示され、使いたいブラウザアプリを選択すると、本サイトのトップページヘアクセスします。選択肢が複数ある場合、利用者が起動するアプリケーションを選択できます。Intent(Intent.ACTION_VIEW,Uri.parse(&quot;geo:0,0?q=Osaka&quot;));マップボタンを選択すると、GoogleMapのアプリケーションが起動します。ここでは、大阪府大阪市に中心がくるよう、設定しています。Intent(Intent.ACTION_VIEW,Uri.parse(&quot;market://details?id=com.udg.goodmorning.tweet&quot;));マーケットボタンを選択すると、アプリマーケットのアプリケーションが起動します。アプリマーケットのアプリケーションで、指定されたアプリケーションの詳細情報が表示されます。Uri.parse(&quot;tel:123456789&quot;));電話ボタンを選択すると、ダイヤラーアプリ(電話のアプリ)が起動します。ダイヤラーアプリが起動し、指定された番号が入力された状態になります。&quot;&quot;トゥットゥルー&quot;);文字列ボタンを選択すると、文字列を受け取る事ができるアプリケーションが起動します。(例:twitterアプリやメーラーアプリなど)一般的に、文字列を受け取ることができるアプリケーションは多数あるため、リストからアプリケーションを選択します。&quot;トゥットゥルー&quot;);メールボタンを選択すると、メーラーアプリが起動します。36行目でメールのタイトル、37行目でメールの本文を指定しています。他にも、様々なイベントがあります。Intentで保持できる情報Intentが保持する事ができる主要な情報はactionとdataの2つがあります。上記actionとdataを組み合わせて、様々な情報を別アプリケーションへ通知することができます。第2属性として以下の4つを追加することもできます。メソッド名説明TextViewクラスのsetTextメソッド表示するテキストデータを指定するときに使用します。TextViewクラスのsetTextSizeメソッド表示するテキストデータのサイズを指定するときに使用します。TextViewクラスのsetTextColorメソッド表示するテキストデータの色を指定するときに指定しますTextViewクラスのsetGravityメソッド表示するテキストデータの表示位置(左寄せ、右寄せなど)を指定するときに使用します。TextViewクラスのsetCompoundDrawablesメソッドTextViewに付随させる画像イメージを表示するときに使用します。上下左右に画像を付加することができます。TextViewクラスのsetTypefaceメソッド表示するテキストデータのフォントやスタイル(BOLD、ITALICなど)を指定するときに使用します。2.0(β)に対応した解説書です。TechBooster.TechBoosterについて。