#kotlin-android-extensions
KotlinでAndroidアプリ書いているとき、layoutファイルに
<TextView
android:id="@+id/textview"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
こんなん書いてたとしたら、このPlugin利用するとActivity中に
override fun onCreate(savedInstanceState: Bundle?) {
setContentView(R.layout.activity_main)
textview.text = "hogehoge"
}
とidが変数名となって利用できますよね?とても便利です
#Fragmentでの利用
このkotlin-android-extensionsをFragmentでもつかいたいなぁと思った時、最初こう書きました
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater!!.inflate(R.layout.fragment_main, container, false)
textview.text = "hogehoge"
return view
}
コンパイルは通りましたが、実行したらNullPointerExceptionで落ちました…
これはまたview.findViewById(ResourceID)
の嵐かと思いましたが、調べたらありました!
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater!!.inflate(R.layout.fragment_main, container, false)
return view
}
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
textview.text = "hogehoge"
}
onViewCreated
でインスタンスを取得できました!ありがたや~
参考までに書いてみました丿