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");
text1.setText("data: " + str);まず、Intentの「getStringExtra」メソッドを使い、指定した名前のString値を変数に取り出します。Intentには、getStringExtraのように、さまざまな値を取り出すためのメソッドが用意されています。こうして値を取り出したら、それを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);
}
}
※関連コンテンツ