For example, I want to access RecyclerView(Id recycler_view) elements in content_main.xml by Mainactivity.kt. content_main.xml is in activity_main.xml.
class PhotoDetailsActivity : AppCompatActivity() {
private lateinit var binding: ContentMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(findViewById(R.id.toolbar))
binding = ContentMain.inflate(layoutInflater)
binding.recycler_view.layoutManager = LinearLayoutManager(this)
....
}
}
But this way does not work. How can i do that?
Replace:
setContentView(R.layout.activity_main)
setSupportActionBar(findViewById(R.id.toolbar))
binding = ContentMain.inflate(layoutInflater)
with:
binding = ContentMain.inflate(layoutInflater)
setContentView(binding.root)
setSupportActionBar(binding.toolbar)
You need to use the root
of your inflated binding
with setContentView()
for the binding to work.