IntentとActivity (1/6)
作成:2010-05-17 13:25
更新:2010-05-17 13:26
更新:2010-05-17 13:26
■Intentを使いActivityを起動する
Androidは、マルチタスクです。複数のアプリケーションを同時にいくつも起動し動かすことができます。この特性を活かすために考え出されたのが「インテント」というものです。
インテントは、外部からActivityを起動するための仕組みです。これは「Intent」というクラスとして用意されています。Intentインスタンスを用意し実行することで、プログラム内から別のActivityを起動することができるのです。
このIntentによる起動には「明示的」と「暗黙的」なものがあります。まずは、一般的なアプリケーションを起動するのに用いられる「暗黙的Intent」から使ってみましょう。
暗黙的というのは、特定のActivityを示さず、「こういうときに起動するやつを動かして」というものです。例えば、パソコンでも、イメージファイルやWebのリンクなどをダブルクリックして開くと、自動的にそれを処理するアプリケーションが起動して開きますね? あれは、別に「JPEGファイルを開くから、フォトショップを起動して」ということをユーザーが指定しているわけではなく、OS自身に「JPEGを編集するときはフォトショップを使おう」という情報が保管されているわけです。
同様に、Androidでも、特定のデータをIntentで開こうとすると、それを扱うためのActivityが自動的に選ばれ起動します。これが、暗黙的Intentです。
では、実際に暗黙的Intentを使って、Activityを起動してみましょう。まずは、簡単なレイアウトをmain.xmlに用意します。ここでは、1つのボタンを表示するだけのごく簡単なアプリケーションを考えてみましょう。
インテントは、外部からActivityを起動するための仕組みです。これは「Intent」というクラスとして用意されています。Intentインスタンスを用意し実行することで、プログラム内から別のActivityを起動することができるのです。
このIntentによる起動には「明示的」と「暗黙的」なものがあります。まずは、一般的なアプリケーションを起動するのに用いられる「暗黙的Intent」から使ってみましょう。
暗黙的というのは、特定のActivityを示さず、「こういうときに起動するやつを動かして」というものです。例えば、パソコンでも、イメージファイルやWebのリンクなどをダブルクリックして開くと、自動的にそれを処理するアプリケーションが起動して開きますね? あれは、別に「JPEGファイルを開くから、フォトショップを起動して」ということをユーザーが指定しているわけではなく、OS自身に「JPEGを編集するときはフォトショップを使おう」という情報が保管されているわけです。
同様に、Androidでも、特定のデータをIntentで開こうとすると、それを扱うためのActivityが自動的に選ばれ起動します。これが、暗黙的Intentです。
では、実際に暗黙的Intentを使って、Activityを起動してみましょう。まずは、簡単なレイアウトをmain.xmlに用意します。ここでは、1つのボタンを表示するだけのごく簡単なアプリケーションを考えてみましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※main.xmlのソースコード <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:text="@string/btn_label" android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> ※strings.xmlのソースコード <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">This is Intent Test.</string> <string name="app_name">AndroidApp</string> <string name="btn_label">Click</string> </resources>
※関連コンテンツ