IntentとActivity (6/6)
作成:2010-05-17 16:49
更新:2010-05-17 16:49
更新:2010-05-17 16:49
■SampleActivityクラスでIntentから値を受け取る
では、SampleActivity.javaのソースコードを作成しましょう。下にリストを掲載しておきます。
ここでは、onCreate時にIntentからテキスト情報を取得し、TextViewに表示しています。findViewByIdでTextViewを取得した後、
のように、さまざまな値を取り出すためのメソッドが用意されています。こうして値を取り出したら、それをsetTextで表示するだけです。
これで、一通りのソースコードができました。実際に動かしてみて動作を確認してみましょう。最初に表示されるSampleAppでテキストを入力しボタンをクリックすると、SampleActivityの画面が起動し、そこに「data: ○○」というようにして、入力したテキストが表示されます。Activityのクラスを指定して起動し、特定の値を渡して処理しているのがわかるでしょう。
このIntentを介したデータの受け渡しは、もちろん明示的Intentだけでなく、暗示的Intentでも利用は可能です。ただし、暗示的なActivityの起動は、どのActivityが起動するかわかりません。どんなものであっても、渡されたデータがきちんと処理されるか、ということを考えると、あまり特殊なことはできないと思った方が良いでしょう。
ここでは、onCreate時にIntentからテキスト情報を取得し、TextViewに表示しています。findViewByIdでTextViewを取得した後、
Intent intent = this.getIntent();Intentを、Activityの「getIntent」で取得します。続いて、このIntentから、受渡されたデータを取り出します。
String str = intent.getStringExtra("data");まず、Intentの「getStringExtra」メソッドを使い、指定した名前のString値を変数に取り出します。Intentには、getStringExtra
text1.setText("data: " + str);
のように、さまざまな値を取り出すためのメソッドが用意されています。こうして値を取り出したら、それをsetTextで表示するだけです。
これで、一通りのソースコードができました。実際に動かしてみて動作を確認してみましょう。最初に表示されるSampleAppでテキストを入力しボタンをクリックすると、SampleActivityの画面が起動し、そこに「data: ○○」というようにして、入力したテキストが表示されます。Activityのクラスを指定して起動し、特定の値を渡して処理しているのがわかるでしょう。
このIntentを介したデータの受け渡しは、もちろん明示的Intentだけでなく、暗示的Intentでも利用は可能です。ただし、暗示的なActivityの起動は、どのActivityが起動するかわかりません。どんなものであっても、渡されたデータがきちんと処理されるか、ということを考えると、あまり特殊なことはできないと思った方が良いでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
package jp.tuyano; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.*; public class SampleActivity extends Activity { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.sample); TextView text1 = (TextView)this.findViewById(R.id.text1); Intent intent = this.getIntent(); String str = intent.getStringExtra("data"); text1.setText("data: " + str); } }
※関連コンテンツ