intentに含まれるkeyの一覧を取得
intentに含まれるkeyの一覧を取得したい
様々な画面からある画面へ遷移する設計ではintent.putExtra()メソッドで格納したデータは遷移元の画面によって異なることがあり得る。 その際にintentが持たないキーをgetStringExtra()メソッドで取得しようものならエラーが出てしまう。 これに対しよくやったのがdjango(python)でキーを一覧取得できるkeys()メソッドを使って、その中にキーが有るかでif構文を用いる方法だ。 これをkotlinでもやろうとしたのだが、どうもBundleという概念が必要になるようだ。
Javaの場合はこれで取得できる
Set<String> keys = intent.getExtras().keySet();
Listing all extras of an Intent
残念なことにKotlinではgetExtras()メソッドを見つけることができなかった。そのかわりにBundleという概念で対応する必要がある。 この件については他の人の記事でも書かれている。
one thing is important here in Kotlin we don’t have getter setter, we have properties as you all can see I get the extras using (intent.extras) not (intent.getExtras()).
Kotlin Series — Share Data between Activities using Explicit Intent
Bundleについての解説
これが一番わかりやすかった。