明示的インテント
■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); }