Android 앱/Android 개발 팁

import kotlinx.android.synthetic.main.activity_main.* 안될때

arvigoes 2021. 4. 18. 23:05

import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.fragment_main.*

이들이 안될때

plugins 에 'kotlin-android-extensions' 를 추가 하고 상단에 나오는 'sync now' 클릭 해 준다.


plugin 을 추가 안 했을때는 
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.fragment_main.*
요걸 import 하라는 요청도 없다.
이게 안될때 나오는 문제로는 xml의 id 를 통한 접근이 불가능 하다.

navController = nav_host_fragment.findNavController()  <-- 요 방법으로 접근이 불가능 하다

대체 방법으로는

val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController

요런식으로 fragment 를 찾아서 접근이 가능하다.

pugin 을 추가 해도 되고 저렇게 리소스를 접근해서 하는 방식 둘다 사용이 가능하니 참고 하시길..

'Android 앱 > Android 개발 팁' 카테고리의 다른 글

anko library 적용  (0) 2020.02.19
Andorid Stuido java 환경 설정 추가  (0) 2020.01.03