 
        دوستان عزیز سلام
به جلسه دوم ViewBinding خوش آمدید
پیشنیاز
ابتدا از این جلسه آموزشی کامل قضیه ViewBinding رو درک کنید
و بعد ادامه این آموزش رو بدید
الزامات
برای استفاده از ViewBinding باید اندروید استودیو نسخه 3.6 و به بالا رو داشته باشید
و حتما گریدل خودتون رو هم به آخرین نسخه آپدیت کنید
مرحله ۱ : فعال سازی
اولین کاری که باید انجام بدید به گریدل پروژه مراجعه کنید
و در قسمت android تکه کد زیر رو وارد کنید
android {
    ...
    viewBinding {
        enabled = true
    }
}
با این کار قابلیت استفاده از ViewBinding رو به پروژه خودمان اضافه کردیم
نکته بسیار مهم
با فعال کردن ViewBinding یک اتفاق خاص میفته ، چه اتفاقی ؟
خود اندروید استودیو میاد و برای هرچی لایوت که در پروژه وجود دارد
برای تک تک آن ها کلاس Binding ایجاد میکند
مثلا من یک لایوت به نام activity_main در پروژه دارم
اندروید استودیو یک کلاس Binding مخصوص لایوت activity_main ایجاد میکند
که نام کلاس ایجاد شده از نام لایوت پیروی میکنه ، به شکل زیر
activity_main ---> ActivityMainBinding
حالا اگه نام لایوت شما برابر بود با user ، نام کلاس Binding ایجاد شده برابر است با UserBinding
user ---> UserBinding
مرحله ۲ : کانفیگ
به اکتیویتی مورد نظر خودمون میریم
در اینجا باید از کلاس Binding استفاده کنیم
یعنی روی اکتیویتی اون رو ست کنیم
به کدهای زیر دقت کنید
ActivityMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);
   binding = ActivityMainBinding.inflate(getLayoutInflater());
   View view = binding.getRoot();
   setContentView(view);
}
خط ۱
در اینجا یک نمونه از کلاس Binding ایجاد کردیم
همون کلاسی که خود اندروید استودیو از روی لایوت ما یعنی activity_main ایجاد کرد
حالا هروقت که بخایم به یک ID از لایوت متصل بشیم دیگه خبری از findViewById نیست
خط 7 تا ۹
در اینجا هم کلاس Binding رو روی اکتیویتی ست کردیم
درواقع لایوت رو به روش ViewBinding روی اکتیویتی ست کردیم
مثال استفاده
من در لایوت خودم سه TextView دارم
و میخام روی هرکدوم یک متن رو ست کنم
به شکل زیر عمل میکنم ( به خط های ۱۰ ، ۱۱ و ۱۲ دقت کنید )
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("www.HamyarAndroid.com");
}
در ادامه هم کدهای کامل من قرار دارند
Layout : activity_main
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:textSize="18sp" />
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:textSize="18sp" />
    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:textSize="18sp" />
</LinearLayout>
Activity : MainActivity
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("www.HamyarAndroid.com");
    }
}
کانفیگ ViewBinding روی فرگمنت
تا اینجا یاد گرفتید ViewBinding رو روی اکتیویتی ست کنید و استفاده کنید
برای فرگمنت هم به همین شکل هستش ، فقط در مرحله 2 ، یعنی کانفیگ
باید به روش زیر عمل کنید ، به کدها دقت کنید
private ResultProfileBinding binding;
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{
    binding = ResultProfileBinding.inflate(inflater, container, false);
    View view = binding.getRoot();
    return view;
}
@Override
public void onDestroyView() 
{
    super.onDestroyView();
    binding = null;
}
سخن آخر
امیدوارم از آموزش های همیار اندروید خوشتون بیاد
در جلسات بعدی هم کلی نکته درمورد ViewBinding براتون آموزش میدم
کانال و گروه تلگرامی همیار اندروید رو فراموش نکنید
منتظر کامنت های پر انرژی شما هستیم
بدرود
mrc
 
            خواهش میکنم دوست عزیز
موفق باشید