ডেটা বাইন্ডিং লাইব্রেরি Android Jetpack-এর অংশ।
ডেটা বাইন্ডিং লাইব্রেরি হল একটি সাপোর্ট লাইব্রেরি যা আপনাকে প্রোগ্রাম্যাটিক্যালি করার পরিবর্তে একটি ঘোষণামূলক ফর্ম্যাট ব্যবহার করে আপনার অ্যাপের ডেটা সোর্সে আপনার লেআউটে UI উপাদানগুলিকে বাইন্ড করতে দেয়।
লেআউট প্রায়ই অ্যাক্টিভিটিতে কোডের মাধ্যমে সংজ্ঞায়িত করা হয় যা UI ফ্রেমওয়ার্ক
মেথডকে কল করে। যেমন, নিম্নলিখিত কোড findViewById()-কে কল করে যাতে একটি
TextView উইজেট খুঁজে পাওয়া যায় এবং viewModel ভেরিয়েবলের userName প্রপার্টির সাথে
সেটিকে বাইন্ড করা যায়:
Kotlin
findViewById<TextView>(R.id.sample_text).apply {
text = viewModel.userName
}
জাভা
TextView textView = findViewById(R.id.sample_text);
textView.setText(viewModel.getUserName());
লেআউট ফাইলে সরাসরি উইজেটে টেক্সট অ্যাসাইন করার জন্য কীভাবে ডেটা বাইন্ডিং লাইব্রেরি ব্যবহার করতে হয় তা নিম্নলিখিত উদাহরণে দেখানো হয়েছে। এর ফলে উপরে দেখানো কোনও জাভা কোড
কল করার প্রয়োজন হয় না। অ্যাসাইনমেন্ট এক্সপ্রেশনে @{} সিনট্যাক্সের ব্যবহার লক্ষ্য করুন:
<TextView
android:text="@{viewmodel.userName}" />
লেআউট ফাইলে কম্পোনেন্ট বাইন্ড করলে, আপনার অ্যাক্টিভিটিতে অনেক UI ফ্রেমওয়ার্ক কল সরিয়ে দিতে পারবেন, যার ফলে সেগুলি আরও সহজ ও সহজে ম্যানেজ করা যায়। এছাড়াও, এটি আপনার অ্যাপের পারফর্ম্যান্স উন্নত করতে পারে এবং মেমরি লিক ও কোনও পয়েন্টার এক্সেপশন নেই সংক্রান্ত সমস্যা প্রতিরোধ করতে সাহায্য করতে পারে।
ডেটা বাইন্ডিং লাইব্রেরি ব্যবহার করা
আপনার Android অ্যাপে কীভাবে ডেটা বাইন্ডিং লাইব্রেরি ব্যবহার করবেন তা জানতে নিম্নলিখিত পৃষ্ঠাগুলি ব্যবহার করুন।
- শুরু করুন
- Android Studio-তে ডেটা বাইন্ডিং কোডের জন্য সহায়তা সহ ডেটা বাইন্ডিং লাইব্রেরির সাথে কাজ করার জন্য কীভাবে আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট প্রস্তুত করবেন তা জানুন।
এক্সপ্রেশন ল্যাঙ্গুয়েজ আপনাকে এমন এক্সপ্রেশন লিখতে দেয় যা লেআউটের ভিউতে ভেরিয়েবল কানেক্ট করে। ডেটা বাইন্ডিং লাইব্রেরি অটোমেটিক আপনার ডেটা অবজেক্টের সাথে লেআউটে ভিউ বাইন্ড করার জন্য প্রয়োজনীয় ক্লাস তৈরি করে। লাইব্রেরি ইম্পোর্ট, ভেরিয়েবল ও ইনক্লুডের মতো ফিচার প্রদান করে যেগুলি আপনি লেআউটে ব্যবহার করতে পারবেন।
লাইব্রেরির এইসব ফিচার আপনার বর্তমান লেআউটের সাথে নির্বিঘ্নে সহাবস্থান করে।
যেমন, এক্সপ্রেশনে ব্যবহার করা যেতে পারে এমন বাইন্ডিং ভেরিয়েবলগুলি UI লেআউটের রুট এলিমেন্টের সিবলিং
data এলিমেন্টের মধ্যে সংজ্ঞায়িত করা হয়।
দুটি এলিমেন্টই layout ট্যাগে র্যাপ করা থাকে, যেমনটি নিম্নলিখিত
উদাহরণে দেখানো হয়েছে:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewmodel"
type="com.myapp.data.ViewModel" />
</data>
<ConstraintLayout... /> <!-- UI layout's root element -->
</layout>
- পর্যবেক্ষণযোগ্য ডেটা অবজেক্ট নিয়ে কাজ করা
- ডেটা বাইন্ডিং লাইব্রেরি ডেটার পরিবর্তন লক্ষ্য করার জন্য ক্লাস ও পদ্ধতি প্রদান করে। অন্তর্নিহিত ডেটা সোর্স পরিবর্তন হলে UI রিফ্রেশ করার ব্যাপারে আপনাকে চিন্তা করতে হবে না। আপনি নিজের ভেরিয়েবল বা সেগুলির প্রপার্টি পর্যবেক্ষণযোগ্য করতে পারবেন। লাইব্রেরি আপনাকে অবজেক্ট, ফিল্ড বা কালেকশন পর্যবেক্ষণযোগ্য করতে দেয়।
- জেনারেট করা বাইন্ডিং ক্লাস
- ডেটা বাইন্ডিং লাইব্রেরি বাইন্ডিং ক্লাস তৈরি করে যা লেআউটের ভেরিয়েবল ও ভিউ অ্যাক্সেস করতে ব্যবহার করা হয়। এই পৃষ্ঠায় দেখানো হয়েছে যে কীভাবে জেনারেট করা বাইন্ডিং ক্লাস ব্যবহার ও কাস্টমাইজ করতে হয়।
- বাইন্ডিং অ্যাডাপ্টার
প্রতিটি লেআউট এক্সপ্রেশনের জন্য, একটি বাইন্ডিং অ্যাডাপ্টার রয়েছে যা তৈরি করে সংশ্লিষ্ট বৈশিষ্ট্য বা শ্রোতাদের সেট করার জন্য ফ্রেমওয়ার্ক কল প্রয়োজন। যেমন, বাইন্ডিং অ্যাডাপ্টার টেক্সট প্রপার্টি সেট করার জন্য
setText()পদ্ধতি কল করতে পারে অথবা ক্লিক ইভেন্টে লিসেনার যোগ করার জন্যsetOnClickListener()পদ্ধতি কল করতে পারে। সবচেয়ে সাধারণ বাইন্ডিং অ্যাডাপ্টার, যেমন এই পৃষ্ঠার উদাহরণে ব্যবহার করাandroid:textপ্রপার্টির জন্য অ্যাডাপ্টার,android.databinding.adaptersপ্যাকেজে আপনার ব্যবহারের জন্য উপলভ্য। সাধারণ বাইন্ডিং অ্যাডাপ্টারের তালিকা দেখতে, অ্যাডাপ্টার দেখুন। এছাড়াও, আপনি কাস্টম অ্যাডাপ্টার তৈরি করতে পারেন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
Kotlin
@BindingAdapter("app:goneUnless")
fun goneUnless(view: View, visible: Boolean) {
view.visibility = if (visible) View.VISIBLE else View.GONE
}
জাভা
@BindingAdapter("app:goneUnless")
public static void goneUnless(View view, Boolean visible) {
view.visibility = visible ? View.VISIBLE : View.GONE;
}
- আর্কিটেকচার কম্পোনেন্টে লেআউট ভিউ বাইন্ড করা
- Android সাপোর্ট লাইব্রেরিতে আর্কিটেকচার কম্পোনেন্ট অন্তর্ভুক্ত থাকে, যা ব্যবহার করে আপনি শক্তিশালী, টেস্ট করা যায় এমন এবং রক্ষণাবেক্ষণযোগ্য অ্যাপ ডিজাইন করতে পারবেন। আপনার UI-এর ডেভেলপমেন্ট আরও সহজ করতে, আপনি ডেটা বাইন্ডিং লাইব্রেরির সাথে আর্কিটেকচার কম্পোনেন্ট ব্যবহার করতে পারেন।
- টু-ওয়ে ডেটা বাইন্ডিং
- ডেটা বাইন্ডিং লাইব্রেরি টু-ওয়ে ডেটা বাইন্ডিং সাপোর্ট করে। এই ধরনের বাইন্ডিংয়ের জন্য ব্যবহৃত নোটেশন কোনও প্রপার্টির ডেটা পরিবর্তন সংক্রান্ত তথ্য পাওয়ার ক্ষমতাকে সমর্থন করে এবং একই সাথে সেই প্রপার্টিতে ব্যবহারকারীর আপডেট শোনে।
অতিরিক্ত রিসোর্স
ডেটা বাইন্ডিং সম্পর্কে আরও জানতে, নিম্নলিখিত অতিরিক্ত রিসোর্স পরামর্শ করুন।
নমুনা
কোডল্যাবস
ব্লগ পোস্ট
আপনার জন্য সাজেস্ট করা হয়েছে
- মনে রাখবেন: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট দেখানো হয়
- বাইন্ডিং অ্যাডাপ্টার
- লেআউট ও বাইন্ডিং এক্সপ্রেশন
- জেনারেট করা বাইন্ডিং ক্লাস