立ち上げるフラグメントが複数ある時に、whenを使用した分岐方法をメモする。
val intent = Intent(activity, Workctivity::class.java).apply {
putExtra("workFragment", Workctivity.WorkFragments.WorkA.ordinal)
}
startActivity(intent)
val intent = Intent(activity, Workctivity::class.java).apply {
putExtra("workFragment", Workctivity.WorkFragments.WorkB.ordinal)
}
startActivity(intent)
enum class WorkFragments {
WorkA,
WorkB
}
val fragmentType = intent.getSerializableExtra("workFragment")
val fragment = when (fragmentType) {
0 -> {
WorkAFragment()
}
1 -> {
WorkBFragment()
}
}
supportFragmentManager
.beginTransaction()
.add(R.id.work_container, fragment, Fragment::class.java.name)
.setTransition(TRANSIT_FRAGMENT_OPEN).commit()
}
enumで定義した値をordinalで渡し、when文で分岐させる。値に応じてフラグメントを切り替える。
参考