এপিআই 11 এর পরে SharedPreferences Editor
গ্রহণ করুন Sets
। আপনি আপনার তালিকাটিকে একটি HashSet
বা অনুরূপ কিছুতে রূপান্তর করতে এবং এটির মতো সঞ্চয় করতে পারেন। আপনি যখন এটি আবার পড়েন, এটিকে একটিতে রূপান্তর করুন ArrayList
, প্রয়োজনে এটিকে বাছাই করুন এবং আপনি যেতে ভাল।
//Retrieve the values
Set<String> set = myScores.getStringSet("key", null);
//Set the values
Set<String> set = new HashSet<String>();
set.addAll(listOfExistingScores);
scoreEditor.putStringSet("key", set);
scoreEditor.commit();
আপনি নিজের সিরিয়ালাইজ করতে পারেন ArrayList
এবং তারপরে / এটিকে সংরক্ষণ / পড়তে পারেন SharedPreferences
। নীচে সমাধানটি দেওয়া হল:
সম্পাদনা:
ঠিক আছে, নীচে ArrayList
সিরিয়ালযুক্ত অবজেক্ট হিসাবে সংরক্ষণ করার জন্য সমাধানটি দেওয়া হয়েছে SharedPreferences
এবং তারপরে এটি ভাগ করা পছন্দসমূহ থেকে পড়ুন।
যেহেতু API কেবলমাত্র SharedPreferences (এপিআই 11 এর পরে এর সহজ) এর থেকে স্ট্রিংগুলি সংরক্ষণ এবং পুনরুদ্ধারকে সমর্থন করে, তাই আমাদের অ্যারেলিস্ট অবজেক্টটি ক্রমিকায়িত এবং ডি-সিরিয়ালাইজ করতে হবে যার কাজগুলিতে স্ট্রিংয়ের তালিকা রয়েছে।
ইন addTask()
TaskManagerApplication ক্লাসের পদ্ধতি, আমরা ভাগ পছন্দের উদাহরণস্বরূপ পেতে এবং তারপর ব্যবহার ধারাবাহিকভাবে ArrayList সঞ্চয় করতে আছে putString()
পদ্ধতি:
public void addTask(Task t) {
if (null == currentTasks) {
currentTasks = new ArrayList<task>();
}
currentTasks.add(t);
// save the task list to preference
SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
Editor editor = prefs.edit();
try {
editor.putString(TASKS, ObjectSerializer.serialize(currentTasks));
} catch (IOException e) {
e.printStackTrace();
}
editor.commit();
}
একইভাবে onCreate()
পদ্ধতির পছন্দ থেকে আমাদের কার্যগুলির তালিকাটি পুনরুদ্ধার করতে হবে :
public void onCreate() {
super.onCreate();
if (null == currentTasks) {
currentTasks = new ArrayList<task>();
}
// load tasks from preference
SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
try {
currentTasks = (ArrayList<task>) ObjectSerializer.deserialize(prefs.getString(TASKS, ObjectSerializer.serialize(new ArrayList<task>())));
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
আপনি ObjectSerializer
অ্যাপাচি পিগ প্রকল্প অবজেক্টসিরাইজার.জভা থেকে ক্লাস পেতে পারেন