همیار اندروید
همیار اندروید
همیار اندروید
نه
بله
منوی وبسایت
حساب کاربری

همیار اندروید

مرجــع تخصـصــی توسـعــه انــدرویــد

منوی وبسایت
حساب کاربری

آموزش پیاده سازی ویو بایندینگ ViewBinding در اندروید

آموزش پیاده سازی ویو بایندینگ ViewBinding در اندروید
نوع هزینه
شرکت کنندگان
دریافت دسترسی
مشخصات این آموزش
موضوعات مرتبط
زبان برنامه‌نویسی
نامشخص   ,   Java   ,   XML
نوع قسمت‌ها
محتوای ارائه شده
متن   ,   تصویر
مهارت های مورد نیاز
وضعیت انتشار
سطح آموزش
آخرین آپدیت
یادگیری این آموزش

دوستان عزیز سلام

به جلسه دوم 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 براتون آموزش میدم

کانال و گروه تلگرامی همیار اندروید رو فراموش نکنید

منتظر کامنت های پر انرژی شما هستیم

بدرود

HRoid.ir/t189
لینک کوتاه این آموزش برای انتشار در شبکه های اجتماعی
نظرات این آموزش
ابتدا باید وارد حساب کاربری خود شوید ، تا بتوانید برای این آموزش نظری ارسال کنید
هنوز نظری برای این آموزش ثبت نشده است
کپی برداری از محتوا و دیگر منابع اختصاصی به هر نحو غیر مجاز است. حتی با ذکر منبع. در صورت تخلف پیگرد قانونی به همراه خواهد داشت.
Copyright © 2020 , www.HamyarRoid.com , www.HamyarAndroid.com , Terms , Sitemap
همیار اندروید توسط سون هاست میزبانی می شود و دارای ترافیک نیم بها می باشد
خلـــق هـمیـار انـدرویــد با
logo-samandehi