kotlinでfragmentのnewInstance関数の作り方
Fragmentにはコンストラクで値渡しをすることが禁止されており、
setArgs関数を使って値渡しをする必要があります。
Javaではstatic関数を使ってFragmentを生成し、その関数内(newInstanceという命名が基本)で、
bundleをセットしていますが、
kotlinにはstaticの関数自体がそもそもないよう(不要なものだとされている)なので、代替する必要があります。
今回は、companion objectを使います。
fragment newInstanceの定義方法
1 2 3 4 5 6 7 8 9 10 11 |
class PlayListFragment : Fragment(){ companion object { fun newInstance(age : Int): PlayListFragment { var playListFragment = PlayListFragment() var bundle = Bundle() bundle.putInt("age_key",age) playListFragment.arguments = bundle return PlayListFragment() } } } |
companion objectの中に関数を定義します。
そのあとは、javaと変わりありません。
fragment newInstanceの使用例
1 2 |
var age : Int = 35 var fragment = PlayListFragment.newInstance(age) |
code
more code
~~~~