সার্চভিউ উদাহরণে যাওয়ার আগে, আমাদের জেনে নেওয়া উচিত অ্যান্ড্রয়েডে সার্চ ভিউ কী, সার্চ ভিউ ঠিক HTML-এর সার্চ বক্সের মতো। আমরা নির্দিষ্ট তালিকা আইটেম থেকে কিছু অনুসন্ধান করতে পারেন.
এই উদাহরণটি দেখায় কিভাবে অ্যান্ড্রয়েডে সার্চ ভিউ একীভূত করা যায়।
ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে সমস্ত প্রয়োজনীয় বিবরণ পূরণ করুন৷
ধাপ 2 − res/layout/activity_main.xml-এ নিম্নলিখিত কোড যোগ করুন।
<?xml version = "1.0" encoding = "utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android = "https://schemas.android.com/apk/res/android" xmlns:tools = "https://schemas.android.com/tools" android:layout_width = "match_parent" android:layout_height = "match_parent"> <LinearLayout android:layout_width = "match_parent" android:layout_height = "match_parent" android:orientation = "vertical"> <android.support.v7.widget.SearchView android:id = "@+id/search" android:layout_width = "match_parent" android:layout_height = "wrap_content" /> <ListView android:id = "@+id/list" android:layout_width = "wrap_content" android:layout_height = "wrap_content"/> </LinearLayout> </android.support.constraint.ConstraintLayout>
উপরের কোডে আমরা সার্চ ভিউ এবং লিস্টভিউ দিচ্ছি কারণ সার্চ ভিউ একটি তালিকা থেকে সার্চ এলিমেন্টে যাচ্ছে।
ধাপ 3 − src/MainActivity.java
-এ নিম্নলিখিত কোড যোগ করুনimport android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.SearchView; import android.widget.Toast; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ListView list = findViewById(R.id.list); SearchView search = findViewById(R.id.search); search.setActivated(true); search.setQueryHint("Type your keyword here"); search.onActionViewExpanded(); search.setIconified(false); ArrayList<String> arrayList = new ArrayList<>(); arrayList.add("JAVA"); arrayList.add("ANDROID"); arrayList.add("C Language"); arrayList.add("CPP Language"); arrayList.add("Go Language"); arrayList.add("AVN SYSTEMS"); final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList); list.setAdapter(arrayAdapter); search.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { return false; } @Override public boolean onQueryTextChange(String newText) { arrayAdapter.getFilter().filter(newText); return false; } }); list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String clickedItem = (String) list.getItemAtPosition(position); Toast.makeText(MainActivity.this, clickedItem, Toast.LENGTH_LONG).show(); } }); } }
উপরের সার্চভিউতে আমরা একজন শ্রোতাকে setOnQueryTextListener হিসেবে দিয়েছি। এটি নীচে দেখানো হিসাবে দুটি পদ্ধতির সাথে আপনার পাঠ্য পরিবর্তন শুনতে যাচ্ছে।
-
onQueryTextSubmit(স্ট্রিং কোয়েরি) − সার্চভিউতে টেক্সট লেখার পর যদি আপনি সেই স্ট্রিং দিয়ে কিছু করতে চান তাহলে এই পদ্ধতিতে করতে পারেন।
-
onQueryTextChange(String newText) − টেক্সট পরিবর্তনের পর মানে সার্চ ভিউতে টেক্সট এন্টার করার সময় এটি কিছু অ্যাকশন করবে।
উপরের কোডে আমাদের কাছে ফিল্টার টেক্সট আছে যখন নিচের দেখানো মত ক্যোয়ারী পরিবর্তন হয়
@Override public boolean onQueryTextChange(String newText) { arrayAdapter.getFilter().filter(newText); return false; }
আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করা যাক. আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালানোর জন্য, আপনার প্রোজেক্টের অ্যাক্টিভিটি ফাইলগুলির একটি খুলুন এবং রান এ ক্লিক করুন টুলবার থেকে আইকন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে
এখন এমন কিছু টেক্সট লিখুন যা নীচে দেখানো আইটেম তালিকার সাথে ঘনিষ্ঠভাবে মেলে