বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

একটি সার্চ যোগ্য কনফিগারেশন তৈরী করুন

একটি searchable configuration নির্ধারণ করে SearchView কীভাবে আচরণ করবে এবং একটি res/xml/searchable.xml ফাইলে নির্ধারিত হয়। ন্যুনতম, একটি সার্চ যোগ্য কনফিগারেশনকে অবশ্যই একটি android:label এট্রিবিউট ধারন করেত হবে যার রয়েছে আপনার অ্যান্ড্রয়েড মেনিফেস্টের < application> বা < activity> এলিমেন্টের android:label এট্রিবিউটের মতো একই ভ্যালু। কিন্তু আমরা সার্চ বক্সে কি প্রবেশ করাতে হবে সে বিষয়ে ইউজারকে ধারণা দিতে একটি android:hint এট্রিবিউট যোগ করারও সুপারিশ করে থাকি:

<?xml version="1.0" encoding="utf-8"?>

<searchable xmlns:android="http://schemas.android.com/apk/res/android"
        android:label="@string/app_name"
        android:hint="@string/search_hint" />

আপনার অ্যাপলিকেশন মেনিফেস্ট ফাইলে, একটি < meta-data> এলিমেন্ট ডিক্লেয়ার করুন যা res/xml/searchable.xml ফাইলকে নির্দেশ করে, যাতে আপনার অ্যাপলিকেশন জানতে পাওে কোথায় এটা খুঁজে পাওয়া যাবে। একটি < activity>এর মধ্যে এলিমেন্ট ডিক্লেয়ার করুন যা আপনি searchView এর মধ্যে প্রদর্শন করতে চান:

<activity ... >
    ...
    <meta-data android:name="android.app.searchable"
            android:resource="@xml/searchable" />

</activity>

onCreateOptionsMenu()পদ্ধতি যা আপনি ইতিপূর্বে তৈরী করেছেন তার মধ্যে setSearchableInfo(SearchableInfo) কল করার মাধ্যমে SearchView দিয়ে সার্চ যোগ্য কনফিগারেশন সম্পৃক্ত করুন:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, menu);

    // Associate searchable configuration with the SearchView
    SearchManager searchManager =
           (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView =
            (SearchView) menu.findItem(R.id.search).getActionView();
    searchView.setSearchableInfo(
            searchManager.getSearchableInfo(getComponentName()));

    return true;
}

getSearchableInfo()এ কল করা একটি SearchableInfo অবজেক্ট রাখে যা সার্চ যোগ্য কনফিগারেশন XML ফাইল থেকে তৈরী হয়। যখন সার্চ যোগ্য কনফিগারেশন যথাযথভাবে আপনার searchView এর সাথে সম্পৃক্ত হয়, searchView একটি ACTION SEARCH ইনটেন্ট দিয়ে একটি একটিভিটি শুরু করে যখন একজন ইউজার একটি অনুসন্ধান হয়। এখন আপনার একটি একটিভিটি প্রয়োজন যা এই ইনটেন্টের জন্য ফিল্টার করতে পারে এবং সার্চ অনুসন্ধান পরিচালনা করতে পারে।