در صدر ما بایستی به پروژه خویش اذن دهیم که دیتا بایندینگ را فعال نماید.طراحی اپلیکیشن در مشهد برای اعمال این عمل ما نیاز
رایاپارس داریم که عنصر دیتا بایندینگ را به پوشه build.gradle در پروژه خویش اضافه کنیم:
android {
compileSdkVersion 29
buildToolsVersion \"29.0.2\"
defaultConfig {
applicationId \"com.tomerpacific.example\"
minSdkVersion 15
targetSdkVersion 29
versionCode 1
versionName \"1.0\"
testInstrumentationRunner \"androidx.test.runner.AndroidJUnitRunner\"
dataBinding { //<-------
enabled = true
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(\'proguard-android-optimize.txt\'), \'proguard-rules.pro\'
}
}
}
آنگاه که پروژه خویش را مجدد فعالسازی کردیم خواهیم توانست کلاس مرتبط با داده های خویش را ساختوساز کنیم که از آن برای دیتا بایندینگ لایه خویش به کارگیری خوا هیم کرد.
package com.tomerpacific.example
import android.graphics.drawable.Drawable
data class ButtonData(val buttonText: String, val buttonImageSrc : Drawable)
به طبع بدین نکته دقت داشته باشید رایاپارس که کلاس ButtonData ما دارنده دو فیلد میباشد:
buttonText که در ذیل تصویر ما نمایش داده میشود.
button Image Src که مسئولیت تصویر دکمه مارا بر عهده داراست.
در شرایطی که ما مستلزم داده های بیشتری باشیم application فقط کافی میباشد که فیلدهای بیشتری را به کلاس خویش اضافه کنیم.
Data binding حقیقی وواقعی در اندروید( نصیب اولیه)
در مرحله آتی ما نیاز داریم که یک متغیر خصوصیت را به لایه خویش اضافه کنیم تا درپی از آن استعمال کنیم. این متغیر به کلاس داده ما پیوند می خورد که ما آن را ساختوساز کردیم. برای اعمال این فعالیت دو عمل میباشد که ما می بایست آنانرا ایفا دهیم:
- عنصر لایه روت خویش را در تگ لیوت در اختیار بگذاریم.
- یک تگ داده را اضافه کنیم که مشتمل بر تعریفوتمجید متغیر ما میباشد(buttonData).
android:layout_width=\"match_parent\"
android:layout_height=\"match_parent\">
android:id=\"@+id/textView2\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:text=\"Example\"
android:textSize=\"30dp\"
app:layout_constraintLeft_toLeftOf=\"parent\"
app:layout_constraintRight_toRightOf=\"parent\"
app:layout_constraintTop_toTopOf=\"parent\" />
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_gravity=\"center_horizontal\"
android:orientation=\"vertical\"
app:layout_constraintBottom_toBottomOf=\"parent\"
app:layout_constraintEnd_toStartOf=\"@+id/linearLayout3\"
app:layout_constraintStart_toStartOf=\"parent\"
app:layout_constraintTop_toBottomOf=\"@+id/textView2\">
android:layout_width=\"100dp\"
android:layout_height=\"100dp\"
android:adjustViewBounds=\"true\"
android:scaleType=\"centerInside\"
android:src=\"@drawable/android\">
android:layout_width=\"match_parent\"
android:layout_height=\"wrap_content\"
android:gravity=\"center_horizontal\"
android:text=\"Image Text\"
android:textSize=\"16sp\" />
android:id=\"@+id/linearLayout3\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_gravity=\"center_horizontal\"
android:orientation=\"vertical\"
app:layout_constraintBottom_toBottomOf=\"parent\"
app:layout_constraintEnd_toEndOf=\"parent\"
app:layout_constraintStart_toStartOf=\"parent\"
app:layout_constraintTop_toBottomOf=\"@+id/textView2\"
app:layout_constraintVertical_bias=\"0.504\">
android:layout_width=\"100dp\"
android:layout_height=\"100dp\"
android:adjustViewBounds=\"true\"
android:scaleType=\"centerInside\"
android:src=\"@drawable/android_p_logo\">
android:layout_width=\"match_parent\"
android:layout_height=\"wrap_content\"
android:gravity=\"center_horizontal\"
android:text=\"Image Text\"
android:textSize=\"16sp\" />
android:id=\"@+id/linearLayout2\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_gravity=\"center_horizontal\"
android:orientation=\"vertical\"
app:layout_constraintBottom_toBottomOf=\"parent\"
app:layout_constraintEnd_toEndOf=\"parent\"
app:layout_constraintHorizontal_bias=\"0.200\"
app:layout_constraintStart_toEndOf=\"@+id/linearLayout3\"
app:layout_constraintTop_toBottomOf=\"@+id/textView2\"
app:layout_constraintVertical_bias=\"0.504\">
android:layout_width=\"100dp\"
android:layout_height=\"100dp\"
android:adjustViewBounds=\"true\"
android:scaleType=\"centerInside\"
android:src=\"@drawable/android_studio_icon\">
android:layout_width=\"match_parent\"
android:layout_height=\"wrap_content\"
android:gravity=\"center_horizontal\"
android:text=\"Image Text\"
android:textSize=\"16sp\" />
اعتنا داشته باشید که هم اکنون خواهیم توانست شمارا از لایه مهم قبل خویش حذف کنیم به این دلیل که آن را به تگ لایه روت خویش منتقل کرده ایم. ضمن این متغیری که ما آن را اضافه کرده ایم به طور بی واسطه به کلاس داده ما متصل گردیدهاست.