আপনার সেটিংস সংগঠিত করুন অ্যান্ড্রয়েড জেটপ্যাকের অংশ।
বড় এবং জটিল সেটিংস স্ক্রিনগুলি ব্যবহারকারীর জন্য একটি নির্দিষ্ট সেটিং খুঁজে পাওয়া কঠিন করে তুলতে পারে যা তারা পরিবর্তন করতে চায়৷ পছন্দ লাইব্রেরি আপনার সেটিংস স্ক্রীনগুলিকে আরও ভালভাবে সংগঠিত করার জন্য নিম্নলিখিত উপায়গুলি অফার করে৷
পছন্দের বিভাগ
আপনার যদি একটি একক স্ক্রিনে একাধিক সম্পর্কিত Preference
বস্তু থাকে, তাহলে আপনি একটি PreferenceCategory
ব্যবহার করে সেগুলিকে গোষ্ঠীভুক্ত করতে পারেন। একটি PreferenceCategory
একটি বিভাগের শিরোনাম প্রদর্শন করে এবং দৃশ্যত বিভাগটিকে আলাদা করে।
XML-এ একটি PreferenceCategory
সংজ্ঞায়িত করতে, একটি PreferenceCategory
দিয়ে Preference
ট্যাগগুলিকে মোড়ানো করুন, নিম্নরূপ:
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"> <PreferenceCategory app:key="notifications_category" app:title="Notifications"> <SwitchPreferenceCompat app:key="notifications" app:title="Enable message notifications"/> </PreferenceCategory> <PreferenceCategory app:key="help_category" app:title="Help"> <Preference app:key="feedback" app:summary="Report technical issues or suggest new features" app:title="Send feedback"/> </PreferenceCategory> </PreferenceScreen>
ফলাফল নিম্নলিখিত মত দেখায়:
![বিভাগ সহ পছন্দগুলি দেখানো একটি চিত্র৷](https://developer.android.com/static/develop/ui/views/components/settings/images/settings-preferencecategory.png?hl=bn)
আপনার অনুক্রমকে একাধিক স্ক্রিনে বিভক্ত করুন
আপনার যদি প্রচুর সংখ্যক Preference
বস্তু বা স্বতন্ত্র বিভাগ থাকে তবে আপনি সেগুলিকে আলাদা স্ক্রিনে প্রদর্শন করতে পারেন। প্রতিটি স্ক্রীন হল একটি PreferenceFragmentCompat
যার নিজস্ব আলাদা অনুক্রম। আপনার প্রারম্ভিক স্ক্রীনে Preference
বস্তুগুলি তখন সাবস্ক্রিনগুলির সাথে লিঙ্ক করতে পারে যা সম্পর্কিত পছন্দগুলি রয়েছে৷
চিত্র 2 একটি সাধারণ শ্রেণিবিন্যাস দেখায় যাতে দুটি বিভাগ রয়েছে: বার্তা এবং সিঙ্ক ।
![শ্রেণিবিন্যাস সহ একটি পছন্দের স্ক্রীন দেখানো একটি চিত্র৷](https://developer.android.com/static/develop/ui/views/components/settings/images/settings-simplehierarchy.png?hl=bn)
চিত্র 3 একাধিক স্ক্রিনে বিভক্ত পছন্দগুলির একই সেট দেখায়:
![একাধিক স্ক্রিনে বিভক্ত একটি শ্রেণিবিন্যাস দেখানো একটি চিত্র](https://developer.android.com/static/develop/ui/views/components/settings/images/settings-screens.png?hl=bn)
একটি Preference
সাথে স্ক্রিন লিঙ্ক করতে, আপনি XML-এ একটি app:fragment
ঘোষণা করতে পারেন অথবা আপনি Preference.setFragment()
ব্যবহার করতে পারেন। যখন Preference
ট্যাপ করা হয় তখন PreferenceFragmentCompat
এর পুরো প্যাকেজ নামটি চালু করুন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
<Preference app:fragment="com.example.SyncFragment" .../>
যখন একজন ব্যবহারকারী একটি যুক্ত Fragment
সাথে একটি Preference
ট্যাপ করে, তখন ইন্টারফেস পদ্ধতি PreferenceFragmentCompat.OnPreferenceStartFragmentCallback.onPreferenceStartFragment()
বলা হয়। এই পদ্ধতিটি যেখানে আপনি নতুন স্ক্রীন প্রদর্শন পরিচালনা করেন এবং যেখানে আশেপাশের Activity
স্ক্রীন প্রয়োগ করা হয়।
একটি সাধারণ বাস্তবায়ন নিম্নলিখিত অনুরূপ দেখায়:
কোটলিন
class MyActivity : AppCompatActivity(), PreferenceFragmentCompat.OnPreferenceStartFragmentCallback { ... override fun onPreferenceStartFragment(caller: PreferenceFragmentCompat, pref: Preference): Boolean { // Instantiate the new Fragment. val args = pref.extras val fragment = supportFragmentManager.fragmentFactory.instantiate( classLoader, pref.fragment) fragment.arguments = args fragment.setTargetFragment(caller, 0) // Replace the existing Fragment with the new Fragment. supportFragmentManager.beginTransaction() .replace(R.id.settings_container, fragment) .addToBackStack(null) .commit() return true } }
জাভা
public class MyActivity extends AppCompatActivity implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback { ... @Override public boolean onPreferenceStartFragment(PreferenceFragmentCompat caller, Preference pref) { // Instantiate the new Fragment. final Bundle args = pref.getExtras(); final Fragment fragment = getSupportFragmentManager().getFragmentFactory().instantiate( getClassLoader(), pref.getFragment()); fragment.setArguments(args); fragment.setTargetFragment(caller, 0); // Replace the existing Fragment with the new Fragment. getSupportFragmentManager().beginTransaction() .replace(R.id.settings_container, fragment) .addToBackStack(null) .commit(); return true; } }
পছন্দের পর্দা
একটি নেস্টেড <PreferenceScreen>
ব্যবহার করে একই XML রিসোর্সের মধ্যে নেস্টেড শ্রেণিবিন্যাস ঘোষণা করা আর সমর্থিত নয়। পরিবর্তে নেস্টেড Fragment
অবজেক্ট ব্যবহার করুন।
পৃথক কার্যকলাপ ব্যবহার করুন
বিকল্পভাবে, যদি আপনার প্রতিটি স্ক্রীনকে ব্যাপকভাবে কাস্টমাইজ করার প্রয়োজন হয়, অথবা আপনি যদি স্ক্রীনের মধ্যে সম্পূর্ণ Activity
পরিবর্তন চান, আপনি প্রতিটি PreferenceFragmentCompat
এর জন্য একটি পৃথক Activity
ব্যবহার করতে পারেন। এটি করার মাধ্যমে, আপনি প্রতিটি Activity
এবং এর সংশ্লিষ্ট সেটিংস স্ক্রীন সম্পূর্ণরূপে কাস্টমাইজ করতে পারেন। বেশিরভাগ অ্যাপের জন্য, আমরা এটি সুপারিশ করি না; পরিবর্তে, পূর্বে বর্ণিত হিসাবে Fragments
ব্যবহার করুন।
একটি Preference
থেকে একটি Activity
চালু করার বিষয়ে আরও তথ্যের জন্য, পছন্দ কর্ম দেখুন।