onLoadFinished() পদ্ধতি বাস্তবায়ন করুন। লোডার ফ্রেমওয়ার্ক onLoadFinished()কল করে যখন কনট্যাক্ট প্রভাইডার ক্যুইয়ারির (অনুসন্ধান) রেজাল্ট ফেরত আনে। এই পদ্ধতির মধ্যে, SimpleCursorAdapter এর মধ্যে রেজাল্ট Cursor রাখুন। এটা স্বয়ংক্রিয়ভাবে সার্চ রেজাল্ট সহকারে ListView কে আপডেট করে:
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
// Put the result Cursor in the adapter for the ListView
mCursorAdapter.swapCursor(cursor);
}
এই পদ্ধতি onLoaderReset()আহবায়িত হয় যখন লোডার ফ্রেমওয়ার্ক চিহ্নিত করে যে রেজাল্ট Cursor স্টেইল (পূরাতন) ডাটা ধারন করে। বিদ্যমান Cursor বিষয়ক SimpleCursorAdapter ডিলিট করুন। আপনি যদি না করে থাকেন, লোডার ফ্রেমওয়ার্ক Cursor কে রিসাইকেল (পূণর্ব্যবহার যোগ্য করা) করে না, যা একটি মেমরি লিকের কারন হয়। উদাহরণস্বরূপ:
@Override
public void onLoaderReset(Loader<Cursor> loader) {
// Delete the reference to the existing Cursor
mCursorAdapter.swapCursor(null);
}
এখন আপনার একটি অ্যাপের প্রধান অংশ আছে যা কনট্যাক্ট নেমে একটি সার্চ স্ট্রিং ম্যাচ করে এবং একটি ListView এর মধ্যে রেজাল্ট ফেরত আনে। ইউজার একটি কনট্যাক্ট নেম নির্বাচন করতে ক্লিক করতে পারে। এটা একটি লিসেনার সক্রিয় করে যার মধ্যে আপনি কনট্যাক্টের ডাটা দিয়ে আরও কাজ করতে পারেন। উদাহরণস্বরূপ, আপনি কনট্যাক্টের ডিটেইল (বিবরণ) পূনরূদ্ধার করতে পারেন। এটা কীভাবে করতে হয় তা জানতে, পরবর্তী অনুশীলনী Retrieving Details for a Contact চলে যান।
সার্চ ইউজার ইন্টারফেস সম্পর্কে আরও জানতে , API গাইড Creating a Search Interface (http://developer.android.com/guide/topics/search/search-dialog.html) পড়ুন।
এই অনুশীলনীর বাকী অধ্যায়গুলো কনট্যাক্ট প্রভাইডারের মধ্যে কনট্যাক্ট খুঁেজ পাওয়ার অন্য উপায়গুলো দেখায়।