পছন্দের কম্পোনেন্ট ও অ্যাট্রিবিউট   Android Jetpack-এর অংশ।

এই বিষয়ে, সেটিংস স্ক্রিন তৈরি করার সময় সবচেয়ে বেশি ব্যবহৃত কিছু Preference কম্পোনেন্ট ও অ্যাট্রিবিউট সম্পর্কে বর্ণনা করা হয়েছে।

পছন্দের কম্পোনেন্ট

এই বিভাগে সাধারণ Preference কম্পোনেন্ট সম্পর্কে বর্ণনা করা হয়েছে। আরও তথ্যের জন্য, প্রতিটি কম্পোনেন্টের জন্য সংশ্লিষ্ট রেফারেন্স পৃষ্ঠা দেখুন।

পছন্দের ইনফ্রাস্ট্রাকচার

PreferenceFragmentCompat - একটি Fragment যা Preference অবজেক্টের একটি ইন্টার‍্যাক্টিভ হায়ারার্কি প্রদর্শন করে।

পছন্দের কন্টেনার

PreferenceScreen - একটি টপ-লেভেল কন্টেনার যা সেটিংস স্ক্রিনকে উপস্থাপন করে। এটি আপনার Preference হায়ারার্কির রুট কম্পোনেন্ট।

PreferenceCategory - একই ধরনের Preferences গ্রুপ করার জন্য ব্যবহৃত কন্টেনার। PreferenceCategory একটি বিভাগের শিরোনাম দেখায় এবং Preferences-এর গ্রুপকে ভিজ্যুয়ালি আলাদা করে।

ব্যক্তিগত পছন্দ

Preference - বেসিক বিল্ডিং ব্লক যা স্বতন্ত্র সেটিংসকে দেখায়। কোনও Preference সেট করা থাকলে, সেটির সাথে সংশ্লিষ্ট কী-ভ্যালু পেয়ার থাকে যা সেটিংয়ের জন্য ব্যবহারকারীর পছন্দ সংরক্ষণ করে এবং অ্যাপ্লিকেশনের অন্য কোথাও থেকে অ্যাক্সেস করা যায়।

EditTextPreference - একটি Preference যা একটি String মান বজায় রাখে। ব্যবহারকারী Preference-এ ট্যাপ করে একটি ডায়ালগ বক্স খুলতে পারেন যেখানে টেক্সট ফিল্ড থাকে। এর মাধ্যমে ব্যবহারকারী পারসিস্টেড ভ্যালু পরিবর্তন করতে পারেন।

ListPreference - একটি Preference যা স্ট্রিং ভ্যালু বজায় রাখে। ব্যবহারকারীরা এই ভ্যালু পরিবর্তন করতে পারবেন সংশ্লিষ্ট লেবেল সহ রেডিও বোতামের তালিকা আছে এমন ডায়ালগে।

MultiSelectListPreference - একটি Preference যা স্ট্রিংয়ের একটি সেট বজায় রাখে। ব্যবহারকারীরা সংশ্লিষ্ট লেবেল সহ চেকবক্সের তালিকা আছে এমন একটি ডায়ালগে এইসব ভ্যালু পরিবর্তন করতে পারবেন।

SeekBarPreference - একটি Preference যা একটি পূর্ণসংখ্যা মান বজায় রাখে। Preference লেআউটে দেখানো সংশ্লিষ্ট সিকবার টেনে এই ভ্যালু পরিবর্তন করা যেতে পারে।

SwitchPreferenceCompat - একটি Preference যা বুলিয়ান ভ্যালু বজায় রাখে। সংশ্লিষ্ট সুইচ উইজেটের সাথে ইন্টার‍্যাক্ট করে অথবা Preference লেআউটে ট্যাপ করে এই ভ্যালু পরিবর্তন করা যেতে পারে।

CheckBoxPreference - একটি Preference যা বুলিয়ান ভ্যালু বজায় রাখে। এই ভ্যালু পরিবর্তন করতে, সংশ্লিষ্ট চেকবক্সে ইন্টার‍্যাক্ট করুন অথবা Preference লেআউটে ট্যাপ করুন।

পছন্দের অ্যাট্রিবিউট

নিচে সবচেয়ে বেশি ব্যবহৃত কিছু অ্যাট্রিবিউটের তালিকা দেওয়া হল যা Preference-এর চেহারা ও আচরণ কনফিগার করে।

সাধারণ অ্যাট্রিবিউট

title

String ভ্যালু যা Preference-এর শীর্ষক দেখায়।

উদাহরণ: app:title="Title"

summary

String ভ্যালু যা Preference সারসংক্ষেপকে দেখায়।

উদাহরণ: app:summary="Summary"

icon

একটি Drawable যা Preference আইকনকে দেখায়।

উদাহরণ: app:icon="@drawable/ic_camera"

key

String ভ্যালু যা সেই 'কী'কে দেখায় যা সংশ্লিষ্ট Preference-এর জন্য ভ্যালু বজায় রাখতে ব্যবহার করা হয়। একটি 'কী' আপনাকে রানটাইমের সময় Preference আরও কাস্টমাইজ করার অনুমতি দেয়। আপনার হায়ারার্কিতে প্রতিটি Preference-এর জন্য একটি করে 'কী' সেট করা উচিত।

উদাহরণ: app:key="key"

enabled

একটি বুলিয়ান ভ্যালু যা দেখায় যে ব্যবহারকারীরা Preference-এর সাথে ইন্টার‍্যাক্ট করতে পারবেন কিনা। এই ভ্যালু false হলে, Preference ধূসর রঙের দেখায় এবং ব্যবহারকারীরা এটির সাথে ইন্টার‍্যাক্ট করতে পারেন না। ডিফল্ট ভ্যালু হল true।

উদাহরণ: app:enabled="false"

selectable

একটি বুলিয়ান ভ্যালু যা দেখায় যে ব্যবহারকারী Preference-এর সাথে ইন্টার‍্যাক্ট করতে পারবেন কিনা। ডিফল্ট ভ্যালু হল true।

উদাহরণ: app:selectable="false"

isPreferenceVisible

একটি বুলিয়ান ভ্যালু যা দেখায় যে Preference বা Preference বিভাগ দেখা যাচ্ছে কিনা। এটি setVisible()-কে কল করার সমতুল্য।

উদাহরণ: app:isPreferenceVisible="false"

defaultValue

Preference-এর জন্য ডিফল্ট ভ্যালু দেখায়। এই Preference-এর জন্য অন্য কোনও পারসিস্টেড ভ্যালু খুঁজে পাওয়া না গেলে, এই ভ্যালু সেট ও পারসিস্ট করা হয়। ভ্যালুর ধরন নির্ভর করে সংশ্লিষ্ট Preference-এর উপর।

উদাহরণ: app:defaultValue="true"

dependency

SwitchPreferenceCompat-এর 'কী' দেখায় যা এই Preference-এর স্ট্যাটাস নিয়ন্ত্রণ করে। সংশ্লিষ্ট সুইচ বন্ধ করা থাকলে, এই Preference বন্ধ হয়ে যায় এবং এটি পরিবর্তন করা যায় না।

উদাহরণ: app:dependency="parent"

PreferenceCategory অ্যাট্রিবিউট

initialExpandedChildrenCount

একটি পূর্ণসংখ্যা মান যা এক্সপ্যান্ডেবল Preference আচরণ চালু করে। এই ভ্যালু PreferenceGroup-এ সর্বাধিক কতগুলি চাইল্ড দেখানো হবে তা বোঝায়। অন্যান্য চিলড্রেনকে আড়াল করা হয় এবং 'বড় করুন' বোতামে ট্যাপ করে দেখানো যেতে পারে। ডিফল্ট হিসেবে, এই ভ্যালু হল Integer.MAX_VALUE এবং সব চাইল্ড দেখানো হয়।

সতর্কতা: এই অ্যাট্রিবিউট ব্যবহার করলে, PreferenceCategory-এ একটি কী সেট করেছেন কিনা তা নিশ্চিত করুন, যাতে কনফিগারেশন পরিবর্তন হলে (যেমন, স্ক্রিন রোটেট করার সময়) স্টেট সঠিকভাবে সেভ ও রিস্টোর করা যায়।

উদাহরণ: app:initialExpandedChildrenCount="0"

ListPreference / MultiSelectListPreference অ্যাট্রিবিউট

entries

স্ট্রিংয়ের একটি অ্যারে যা ব্যবহারকারীকে দেখানোর জন্য তালিকার এন্ট্রির সাথে সম্পর্কিত। এইসব ভ্যালুর প্রতিটি ইন্টার্নালি সেভ করা ভ্যালুর অ্যারের ইনডেক্স অনুযায়ী হয়। যেমন, কোনও ব্যবহারকারী তালিকার প্রথম এন্ট্রি বেছে নিলে, ভ্যালুর সংশ্লিষ্ট অ্যারের প্রথম এলিমেন্ট সেভ করা হয়।

উদাহরণ: app:entries="@array/entries"

সতর্কতা: দুটি অ্যারের দৈর্ঘ্য একই কিনা এবং প্রতিটি অ্যারের ইন্ডেক্স সঠিক এন্ট্রি / ভ্যালু পেয়ারের সাথে ম্যাচ করছে কিনা তা নিশ্চিত করুন।

entryValues

যে অ্যারেতে এন্ট্রিগুলি রয়েছে তা বজায় রাখা হবে। এইসব ভ্যালুর প্রতিটি ব্যবহারকারীকে দেখানো তালিকা এন্ট্রির অ্যারের ইনডেক্স অনুযায়ী হয়।

উদাহরণ: app:entryValues="@array/values"