libro
www.tuyano.com
Google androidプログラミング入門

IntentとActivity (6/6)

作成:2010-05-17 16:49
更新:2010-05-17 16:49

■SampleActivityクラスでIntentから値を受け取る

では、SampleActivity.javaのソースコードを作成しましょう。下にリストを掲載しておきます。

ここでは、onCreate時にIntentからテキスト情報を取得し、TextViewに表示しています。findViewByIdTextViewを取得した後、
Intent intent = this.getIntent();
Intentを、Activity「getIntent」で取得します。続いて、このIntentから、受渡されたデータを取り出します。
String str = intent.getStringExtra("data");
text1.setText("data: " + str);
まず、Intent「getStringExtra」メソッドを使い、指定した名前のString値を変数に取り出します。Intentには、getStringExtra
のように、さまざまな値を取り出すためのメソッドが用意されています。こうして値を取り出したら、それをsetTextで表示するだけです。

これで、一通りのソースコードができました。実際に動かしてみて動作を確認してみましょう。最初に表示されるSampleAppでテキストを入力しボタンをクリックすると、SampleActivityの画面が起動し、そこに「data: ○○」というようにして、入力したテキストが表示されます。Activityのクラスを指定して起動し、特定の値を渡して処理しているのがわかるでしょう。

このIntentを介したデータの受け渡しは、もちろん明示的Intentだけでなく、暗示的Intentでも利用は可能です。ただし、暗示的なActivityの起動は、どのActivityが起動するかわかりません。どんなものであっても、渡されたデータがきちんと処理されるか、ということを考えると、あまり特殊なことはできないと思った方が良いでしょう。

※プログラムリストが表示されない場合

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);
	}

}

※関連コンテンツ

「Google androidプログラミング入門」に戻る