AndroidのIntentの基本
何度やっても忘れるのでメモ。
このブログ、だんだんAndroid備忘録になるかもしれません。
Intentとは
アクティビティ同士を繋げる役割をする機能です。
これを使うことで、自作のアクティビティに画面遷移したり、外部のプログラム(のアクティビティ)を呼び出したりすることが可能になります。
まぁいっぱい情報あるので詳細はググってください。
移動するだけの場合
Intent intent = new Intent(this, AnotherActivity.class); startActivity(intent);
thisは現在のActivityのthis、AnotherActivityは移動先のActivityです。
データを付加する場合
putExtra、getExtra系のメソッドを利用します。メソッドは色々用意されているので、リファレンスを確認して下さい。
送信側
Bundle bundle = new Bundle(); bundle.putString("key", "value"); intent.putExtras(bundle);
受信側
Intent intent = getIntent(); Log.d("sample", intent.getStringExtra("key"));
結果を取得する場合(色々追記)
startActivity()の代わりにstartActivityForResult()を利用します。
private final static int REQUEST_SOMETHING = 1 ... Intent intent = new Intent(this, SomethingActivity.class); startActivityForResult(intent, REQUEST_SOMETHING); ... @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case REQUEST_SOMETHING: if (resultCode == RESULT_OK) { // do something } break; } }
*1:これで何回悩んだことか…