Skip to content

[Android] Seminar 1 ppt에 대한 질문 #163

Answered by JuTaK97
kkomul1 asked this question in Q&A
Discussion options

You must be logged in to vote

1. view binding을 late로 초기화하는 이유

말씀하신 대로 ActivityMainBinding는 이미 만들어져 있습니다. 하지만 inflate할 때 필요한 layoutInflator 가 문제입니다.
실제로

class MainActivity : AppCompatActivity() {

    private val binding: ActivityMainBinding = ActivityMainBinding.inflate(layoutInflater)
    private val viewModel: MainViewModel by viewModels()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(binding.root)

이렇게 해 보면 이런 에러가 납니다.

이유가 뭘까요? layoutInflator를 파고 들어가 보면 Window.java의 이 코드에 도달합니다.

    /**
     * Quick access to the {@link LayoutInflater} instance that this Window
     * retrieved from its Context.
     *
     * @return LayoutInflater The sh…

Replies: 1 comment 4 replies

Comment options

You must be logged in to vote
4 replies
@kkomul1
Comment options

@JuTaK97
Comment options

@kkomul1
Comment options

@JuTaK97
Comment options

Answer selected by JuTaK97
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
android android 관련 내용
2 participants