Kotlin'de Data Binding ve View Binding Kullanımı
Kotlin'de bindinview ifadesi muhtemelen View Binding veya Data Binding'i kastediyor. İkisi de farklı amaçlar için kullanılan ve birbirinden farklı teknolojiler.
View Binding Kullanımı
View Binding, layout dosyalarındaki view'lara doğrudan ve güvenli erişim sağlar.
1. Gradle'da etkinleştirme
build.gradle (Module: app) dosyasında: android kısmı sonrasındaki süslü parantezin içinde dependency lerin hemen üstüne yapıştırılır.
android { viewBinding { enabled = true } }
2. Kullanım örneği
class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) // View'lara erişim binding.textView.text = "Merhaba Dünya" binding.button.setOnClickListener { // Buton tıklama işlemi } } }
Data Binding Kullanımı
Data Binding, verileri doğrudan XML'de kullanmaya olanak tanır.
1. Gradle'da etkinleştirme
build.gradle (Module: app) dosyasında: build futures içine yapıştırılır.
android { dataBinding { enabled = true } }
2. Layout dosyasını düzenleme
activity_main.xml başına:
<layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="user" type="com.example.User" /> </data> <LinearLayout> <!-- View'lar burada --> <TextView android:text="@{user.name}" /> </LinearLayout> </layout>
3. Kullanım örneği
class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = DataBindingUtil.setContentView(this, R.layout.activity_main) val user = User("Ahmet") binding.user = user // View'lara erişim binding.button.setOnClickListener { // Buton tıklama işlemi } } }
Farklar
View Binding sadece view'lara erişimi kolaylaştırır
Data Binding ise view'lara veri bağlamaya ve XML içinde ifadeler kullanmaya olanak tanır
Hangisini kullanacağınız ihtiyacınıza bağlı. Sadece view'lara erişmek istiyorsanız View Binding yeterli olacaktır. XML içinde veri işlemleri yapacaksanız Data Binding kullanmalısınız.
Hiç yorum yok:
Yorum Gönder