๋ทฐ๋ฐ”์ธ๋”ฉ (viewbinding)

2021. 5. 27. 16:49

์ด์ „์— ์“ฐ๋˜ findViewById()๋Š” ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๊ณ  ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ ธ

์•„๋ž˜์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ๋‹ค.

 

์„ค์ •

build.gradle(Module:ํ”„๋กœ์ ํŠธ๋ช…)์—์„œ android ์•ˆ์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

android {
        ...
        viewBinding {
            enabled = true
        }
    }

 

๋ ˆ์ด์•„์›ƒ ํŒŒ์ผ ์ด๋ฆ„์ด activity_main.xml์˜ ๊ฒฝ์šฐ

์ƒ์„ฑ๋œ ๊ฒฐํ•ฉ ํด๋ž˜์Šค ์ด๋ฆ„์€ ActivityMainBinding์ด ๋œ๋‹ค.

 

1. ActivityMainBinding ํƒ€์ž…์˜ binding์„ ์„ ์–ธํ•œ๋‹ค.

2. binding์— ํฌํ•จ๋œ inflate()๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

3. root ๋ทฐ๋ฅผ setContentView()์— ์ „๋‹ฌํ•œ๋‹ค.

private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle) {
    super.onCreate(savedInstanceState)
    
    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)
}

 

์‚ฌ์šฉ

์˜ˆ๋ฅผ ๋“ค์–ด ๋ทฐ์˜ id๊ฐ€ name์ด๋ผ๋ฉด

binding.name์˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

binding.name.text = "good"
binding.name.setOnClickListener{ }

 

 

์•„๋ž˜ ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€๋‹ค.

https://developer.android.com/topic/libraries/view-binding?hl=ko 

 

๋ทฐ ๊ฒฐํ•ฉ  |  Android ๊ฐœ๋ฐœ์ž  |  Android Developers

๋ทฐ ๊ฒฐํ•ฉ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ทฐ์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์—์„œ ์‚ฌ์šฉ ์„ค์ •๋œ ๋ทฐ ๊ฒฐํ•ฉ์€ ๋ชจ๋“ˆ์— ์žˆ๋Š” ๊ฐ XML ๋ ˆ์ด์•„์›ƒ ํŒŒ์ผ์˜ ๊ฒฐํ•ฉ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”์ธ๋”ฉ ํด๋ž˜์Šค์˜

developer.android.com

 

 

728x90

'๐Ÿ’ป๊ฐœ๋ฐœ > Android' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Fragment ์‚ฌ์šฉํ•˜๊ธฐ  (0) 2021.05.27
Intent  (0) 2021.05.27
activity ์ˆ˜๋ช… ์ฃผ๊ธฐ  (0) 2021.05.26
[XML] ์ฝ”๋“œ๋กœ ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ  (0) 2021.05.26
[XML] Scrollview, Imageview  (0) 2021.05.26

BELATED ARTICLES

more