دوستان عزیز سلام
در این جلسه به معرفی ViewBinding می پردازیم
و در جلسات بعدی روش استفاده و نکات مهم برای استفاده از ViewBinding رو خواهیم داشت
findViewById چیست ؟
ابتدا سریع findViewById رو براتون توضیح بدم ، تا درک ViewBinding براتون راحت تر بشه
ما توسط findViewById ارتباطی بین ویو های یک لایوت و اکتیویتی آن برقرار میکنیم
یعنی ارتباط بین XML و Java ( یا Kotlin )
مثال به روش findViewById
کدهای زیر مربوط به اکتیویتی من هستند که با سه TextView در لایوت آن ارتباط برقرار کرده اند
و روی هر TextView یک متن ست کرده ام
package com.hamyarandroid.viewbinding;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView1 = findViewById(R.id.textView1);
textView1.setText("همیار اندروید");
TextView textView2 = findViewById(R.id.textView2);
textView2.setText("HamyarAndroidCom");
TextView textView3 = findViewById(R.id.textView3);
textView3.setText("مرجع تخصصی توسعه اندروید");
}
}
به خط های ۱۶ ، ۱۹ و ۲۱ دقت کنید
اینها همان findViewById های ما هستند ، که ارتباط رو برقرار می کنند
ViewBinding چیست ؟
حالا ViewBinding این وسط چی میگه ؟
ViewBinding اومده و findViewById رو کلا حذف کرده
یعنی برای برقراری ارتباط بین ویوهای لایوت و اکتیویتی
دیگه نیاز نیست از findViewById استفاده کنید
مثال به روش ViewBinding
همون کدهای بالا ( مثال به روش findViewById ) را به روش ViewBinding پیاده سازی میکنیم
package com.hamyarandroid.viewbinding;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.hamyarandroid.viewbinding.databinding.ActivityMainBinding;
public class MainActivity extends AppCompatActivity
{
ActivityMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
binding.textView1.setText("همیار اندروید");
binding.textView2.setText("همیار اندروید");
binding.textView3.setText("همیار اندروید");
}
}
در کدهای بالا مشاهده میکنید دیگه findViewById کلا حذف شد
حالا درنظر بگیرید که مثلا ما ۳۰ ویو داریم و دیگه نیاز نیست findViewById رو برای اون ها بنویسیم
چقدر در کدنویسی و سرعت پیاده سازی صرفه جویی میشه
در یک کلام
ViewBinding جایگزینی برای findViewById می باشد
پیاده سازی ViewBinding
برای پیاده سازی صحیح ViewBinding به این آموزش مراجعه کنید
سخن آخر
در همیار اندروید همه چیز تفکیک شده و اصولی یاد داده میشه
هر سوالی داشتید کامنت کنید حتما پاسخ داده میشه
تا جلسه بعد بدرود