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

注意事項

AndroidManifest.xmlのApplication Nodesのところでアクティビティを追加するのを忘れないこと*1

*1:これで何回悩んだことか…