明示的インテント
■Activityを開く
1.Activityの追加
クラス名の例:SubActivity
Superclass:android.app.Activity
2.レイアウトを追加する
[File]-[New]-[Other]で「Android」の「Android XML Layout File」
例:sub.xml
3.onCreateをオーバーライドしレイアウトを設定
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sub);
}
4.AndroidManifest.xml ファイルにActivityを登録
5.Activtyを開く処理を記述
Intent intent = new Intent(this,SubActivity.class); startActivity(intent);
■Activityにデータを渡す
○Activtyを開く側
Intent intent = new Intent(this,SubActivity.class);
intent.putExtra("test", "あいうえお");
startActivity(intent);
○SubActivty
(onCreate内)
Intent intent = getIntent();
String str = intent.getExtras().getString("test");
TextView tv = (TextView)findViewById(R.id.textView1);
tv.setText(str);
■呼び出し元にデータを返す
○Activtyを開く側
startActivityForResult(intent, 1); // 1 は識別コード
○SubActivty
Intent data = getIntent();
data.putExtra("test2", "かきくけこ");
setResult(RESULT_OK,data);
finish(); // Activityを閉じる
○呼び出し元でのデータの取得
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if( requestCode == 1 ){
String str = data.getExtras().getString("test2");
TextView tv = (TextView)findViewById(R.id.textView1);
tv.setText(str);
}else
super.onActivityResult(requestCode, resultCode, data);
}
Android開発 虎の巻