অনেক অ্যাপ্লিকেশন নির্দিষ্ট অ্যাপ্লিকেশন বা কোনও ক্রিয়াকলাপের সেটিংসে ব্যবহারকারীর পছন্দগুলি ক্যাপচার করার জন্য একটি উপায় সরবরাহ করতে পারে। এটি সমর্থন করার জন্য, অ্যান্ড্রয়েড একটি সহজ সেট করে এপিআই।
পছন্দগুলি সাধারণত নাম মান জোড়। এগুলিকে একটি অ্যাপ্লিকেশনে বিভিন্ন ক্রিয়াকলাপ জুড়ে "ভাগ করা পছন্দসই" হিসাবে সংরক্ষণ করা যেতে পারে (নোট বর্তমানে এটি প্রক্রিয়া জুড়ে ভাগ করা যায় না)। বা এটি এমন কোনও কিছু হতে পারে যা কোনও ক্রিয়াকলাপের সাথে সুনির্দিষ্টভাবে সংরক্ষণ করা দরকার।
ভাগ করা পছন্দসমূহ: ভাগ করা পছন্দগুলি সমস্ত উপাদানগুলি (ক্রিয়াকলাপ, পরিষেবাদি ইত্যাদি) অ্যাপ্লিকেশনগুলির বাইরে ব্যবহার করতে পারে।
ক্রিয়াকলাপ পরিচালিত পছন্দসমূহ: এই পছন্দগুলি কেবল ক্রিয়াকলাপের সাথে ব্যবহার করা যেতে পারে এবং অ্যাপ্লিকেশনটির অন্যান্য উপাদানগুলি ব্যবহার করতে পারে না।
ভাগ করা পছন্দসমূহ:
ভাগ করা পছন্দগুলি শ্রেণীর getSharedPreferencesপদ্ধতির সাহায্যে পরিচালিত হয় Context। পছন্দগুলি ডিফল্ট ফাইলে (1) সঞ্চিত থাকে বা আপনি পছন্দগুলি উল্লেখ করতে কোনও ফাইলের নাম (2) নির্দিষ্ট করতে পারেন।
(1) আপনি ফাইলের নাম নির্দিষ্ট করার সময় আপনি উদাহরণটি কীভাবে পাবেন তা এখানে
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATEপছন্দগুলির জন্য অপারেটিং মোড। এটি ডিফল্ট মোড এবং এর অর্থ এই যে তৈরি করা ফাইলটি কেবল কলিং অ্যাপ্লিকেশন দ্বারা অ্যাক্সেস করা হবে। অন্যান্য দুটি মোড সমর্থিত MODE_WORLD_READABLEএবং MODE_WORLD_WRITEABLE। ইন MODE_WORLD_READABLEঅ্যাপ্লিকেশন নির্মিত ফাইল পড়তে পারেন কিন্তু এটি পরিবর্তন করতে পারবে না। MODE_WORLD_WRITEABLEঅন্যান্য অ্যাপ্লিকেশনগুলির ক্ষেত্রেও তৈরি ফাইলটির লেখার অনুমতি রয়েছে।
(২) প্রস্তাবিত উপায়টি হ'ল ফাইলের নাম উল্লেখ না করে ডিফল্ট মোড দ্বারা ব্যবহার করা
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
শেষ অবধি, একবার আপনার পছন্দসই উদাহরণটি পাওয়া গেলে, আপনি পছন্দগুলি থেকে সঞ্চিত মানগুলি কীভাবে পুনরুদ্ধার করতে পারেন তা এখানে :
int storedPreference = preferences.getInt("storedInt", 0);
পছন্দগুলিতে মান সংরক্ষণ করতে ফাইল SharedPreference.Editorঅবজেক্টটি ব্যবহার করতে হবে। শ্রেণীর Editorনেস্টেড ইন্টারফেস SharedPreference।
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
সম্পাদক এছাড়াও মত পদ্ধতি সমর্থন remove()এবং clear()ফাইল থেকে অগ্রাধিকার মান মুছে দিন।
ক্রিয়াকলাপ পছন্দসমূহ:
ভাগ করা পছন্দগুলি অন্যান্য অ্যাপ্লিকেশন উপাদানগুলি ব্যবহার করতে পারে। তবে আপনার যদি অন্য উপাদানগুলির সাথে পছন্দগুলি ভাগ করার প্রয়োজন না হয় এবং ক্রিয়াকলাপের ব্যক্তিগত পছন্দগুলি চান। আপনি getPreferences()ক্রিয়াকলাপের পদ্ধতির সাহায্যে এটি করতে পারেন । getPreferenceপদ্ধতি ব্যবহার getSharedPreferences()ফাইল অভিরুচি নাম জন্য কার্যকলাপ ক্লাসের নাম দিয়ে পদ্ধতি।
নীচে পছন্দগুলি পেতে কোডটি দেওয়া হচ্ছে
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
মূল্য সংরক্ষণের কোডটিও ভাগ করা পছন্দগুলির ক্ষেত্রে একই।
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
আপনি ডাটাবেসে ক্রিয়াকলাপের স্টোর সংরক্ষণের মতো অন্যান্য পদ্ধতিও ব্যবহার করতে পারেন। দ্রষ্টব্য অ্যান্ড্রয়েডে একটি প্যাকেজও রয়েছে android.preference। প্যাকেজটি অ্যাপ্লিকেশন পছন্দগুলি ইউআই প্রয়োগ করার জন্য ক্লাস সংজ্ঞায়িত করে।
আরও কয়েকটি উদাহরণ দেখতে বিকাশকারীদের সাইটে অ্যান্ড্রয়েডের ডেটা স্টোরেজ পোস্টটি দেখুন।