アプリ開発初心者の暇つぶしAndroid体験記

アプリ開発初心者がAndroidアプリ開発始めました。日々学んだことをアウトプットしていきます。

【Android】Intentを使った画面間の値の受け渡し

今回は画面間の値の受け渡しをまとめていきます。
画面遷移の方法は以前取り上げましたのでその続きと行きましょう!
xprogrammingx.hatenablog.com

遷移元から渡す値を設定する

遷移元から渡したい値を設定する時の処理を実装します。

[MainActivity.java]

@Override
public void onClick(View v) {
    Intent subIntent = new Intent(getApplication(), SubActivity.class);

    // intの値を渡す
    subIntent.putExtra("KEY_INT", 3);

    // Stringの値を渡す
    subIntent.putExtra("KEY_STRING", "文字列型だよ");

    // list<String>の値を渡す
    List<String> list = new ArrayList<>();
    list.add("リスト1");
    list.add("リスト2");
    list.add("リスト3");
    list.add("リスト4");
    list.add("リスト5");
    subIntent.putStringArrayListExtra("KEY_LIST", (ArrayList)list);
    
    startActivity(subIntent);
}

作成したIntentクラスのインスタンスにputExtraメソッドを使って値を設定します。
第一引数が設定する値のキー値です。これは被らなければ好きな名前を付けてください。
第二引数には実際に渡す値です。型は任意ですが、Listは別メソッドが用意されているので注意です。

LIstを渡したいときは、putStringArrayListExtraやputIntegerArrayListExtraを使います。

遷移先での値の受け取り

設定した値を遷移先で取得します。

[SubActivity.java]

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sub);

    Intent intent = getIntent();

    // int型の値を受けとる
    intVal = intent.getIntExtra("KEY_INT",0);

    // String型の値を受けとる
    stringVal = intent.getStringExtra("KEY_STRING");

    // List<String>型の値を受けとる
    stringList = intent.getStringArrayListExtra("KEY_LIST");

    findViewById(R.id.button).setOnClickListener(this);

}

遷移先で値を受け取る場合は、getIntentメソッドで取得したインスタンス
getXXXExtraを使用します。

設定する際はputExtraでほとんどの型を使えていましたが、
受け取る場合は型ごとにメソッドが違うので注意です。
どのメソッドも第一引数にキー値を設定することで値を受け取れます。

nullを許容していない型(intやdouble、booleanなど)の場合は、
第二引数にデフォルト値を設定します。

受け取った値を標準出力してみると、受け渡しが行えていることが分かります。

2020-03-23 13:12:26.517 4526-4526/com.example.test I/System.out: 遷移先で受け取った値
2020-03-23 13:12:26.517 4526-4526/com.example.test I/System.out: valは3
2020-03-23 13:12:26.517 4526-4526/com.example.test I/System.out: stringValは文字列型だよ
2020-03-23 13:12:26.517 4526-4526/com.example.test I/System.out: stringListの1番目はリスト1
2020-03-23 13:12:26.517 4526-4526/com.example.test I/System.out: stringListの2番目はリスト2
2020-03-23 13:12:26.518 4526-4526/com.example.test I/System.out: stringListの3番目はリスト3
2020-03-23 13:12:26.518 4526-4526/com.example.test I/System.out: stringListの4番目はリスト4
2020-03-23 13:12:26.519 4526-4526/com.example.test I/System.out: stringListの5番目はリスト5


それでは今回はここまでです!
お疲れさまでした(^_^)/


最後にアプリの宣伝させてください(*^-^*)

play.google.com