Skip to main content

Android Search Interface

Android Search Interface 

  • Introduction to android search interface in Hindi
  • Creating android search interface in Hindi
  • Adding custom suggestions 

Introduction to Android Search Interface 

Searching किसी भी एप्लीकेशन का एक important feature हो सकता है। यदि आप चाहते है की यूज़र आपकी application को particular information या service के लिए search कर सके तो आपको उसके लिए अपनी एप्लीकेशन में search interface add करना होगा। 

Android applications में आप search interface 2 तरह से add कर सकते है। एक तो आप अपनी application के top area में search dialog add कर सकते है। दूसरे तरीके में आप एक search widget को अपनी application में embed कर सकते है।


Android system search interface implement करने में आपकी मदद करता है ये search queries को ऐसी activity तक पहुँचाता है जो searching perform करती है। आप चाहे तो जब यूज़र search करे तो आप suggestions भी provide कर सकते है।

Android का जो search framework है वो आपकी application में data search करने के लिए API provide नहीं करवाता है। आपको ही अपनी application के हिसाब से एक सही API choose करनी होगी।


Creating Android Search Interface    

जैसा की मैने आपको पहले बताया android में search interface आप 2 तरह से implement कर सकते है पहला तो आप एक search dialog implement कर सकते है और दूसरा आप search widget को embed कर सकते है।

दोनों ही situation में search query आपकी application की किसी specific activity को पहुँचा दी जाती है। आइये सबसे पहले इन दोनों तरीकों के बारे में जानते है।

Search dialog में एक UI (User Interface) component होता है। जब user search option पर click करता है तो ये activate हो जाता है और search dialog show हो जाता है। जैसा की आप उपर दी हुई picture में देख सकते है। Searches को handle करने के लिए आपको एक activity specify करनी होती है। जैसे ही यूज़र query submit करता है तो query उस activity तक पहुँचा दी जाती है जो आपने specify की है।

Search widget को आप layout में कही भी रख सकते है। Search widget SearchView क्लास का object होता है। सामान्यतः search widget एक text box की तरह ही होता है लेकिन आप इसे configure कर सकते है ताकी ये queries एक particular activity को deliver कर सके।

जैसे ही यूज़र query submit करता है तो android system us query को  intent में save कर लेता है और फिर उस intent को आपकी application की उस activity को भेज देता है जो आपने searches handle करने के लिए specify की है।

अपनी application में searching capability add करने के लिए आपको 3 चीज़ो की जरुरत पड़ेगी।

  • सबसे पहले एक XML file की जरुरत होगी जिसमे आप search dialog की settings को configure करेंगे। 
  • इसके बाद आप एक activity create करेंगे जो user की queries को handle करेगी। 
  • इसके बाद आपको एक search interface की आवश्यकता होगी जो यूजर को UI provide करता है। 
आइये इन steps को detail में समझते है -



XML File 

ये एक XML file होती है जिसमे आप <searchable> element declare करते है। <searchable> element का एक attribute होता है android : label जिसमे आप application का name specify करते है। इस file को आप कोई भी नाम दे सकते है लेकिन इसका most common नाम searchable होता है।      


<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="application_name">
</searchable>



Activity to Handle Searches 

Searches को handle करने वाली activity एक ऐसी activity होती है जो user की queries को handle करती है और results शो करती है। सभी search queries intent के माध्यम से activity को पहुँचा दी जाती है। इस प्रकार के intent का action ACTION_SEARCH होता है।

Android system के लिए ये जरुरी है की android system searches को handle करने वाली activity को identify कर सके इसलिए आपको इस activity को AndroidManifest.xml file में define करना होगा। इसका उदाहरण नीचे दिया जा रहा है।


<activity android:name=".your_search_handler_activity">

<intent-filter>

<action android:name="android.intent.action.SEARCH">
</intent-filter>

<meta-data android:name="android.app.searchable" android:resource="@xml/ your configuration file with searchable element"> 


</activity>



उपर दिए उदाहरण में 2 बातें important है एक तो ये की <intent-filter> element के android:action attribute में  action SEARCH define किया गया है।

दूसरी बात है <meta-data> element इसके android:name attribute में आप android.app.searchable लिखते है और android:resource attribute में उस configuration XML file का URL देते है जिसमे आपने <searchable> element declare किया था।

आप searches को handle करने वाली activity में onCreate() method को override करेंगे। इसके बाद getIntent() मेथड से intent को प्राप्त करेंगे और इस intent को compare करेंगे की search action वाला intent ही है।

इसके बाद यदि ये intent search action वाला ही है तो आप इसमें से query को extract कर लेंगे और एक query के नाम से string variable create करके उसमे store कर लेंगे। Intent से query extract करने के लिए आप getStringExtra() method use करेंगे।

एक बार जब आप query extract कर लेते है तो उस query के अनुरूप आपको अपनी application में data search करना होगा और result show करना होगा। Data search करना हर application में अलग अलग तरीके से हो सकता है।

यदि आपका data SQLite database में है तो आप आसानी से android.database.sqlite API यूज़ करते हुए इसे search कर सकते है। और यदि आपका data online stored है तो user को data connection या wifi की आवश्यकता होती है।

Search results को ListView में show करना ठीक रहता है। इसमें आप setListAdapter मेथड की मदद से data से adapter को bound कर सकते है और results शो कर सकते है।       

Comments

Popular posts from this blog

Android Services

Android Services Introduction to  android services in Hindi  Declaring  services in Hindi Creating a  android service in Hindi Introduction to Android Services इससे पहले की आप जाने की service क्या होती है आइये जानते है की service क्या नहीं होती है - एक service separate प्रोसेस नहीं होती है। ये आपकी एप्लीकेशन का ही पार्ट होती है।  एक service thread नहीं होती है।  आइये अब देखते है service क्या होती है - Service एक facility होती है जिससे आप android system को बता सकते है की आप कोई काम background में करते रहना चाहते है।  Service एक facility होती है जिससे एक एप्लीकेशन अपनी कुछ functionality दूसरी applications को expose कर सकती है।    हर service क्लास का <service> declaration AndroidManifest.xml file में होना चाहिए। Services को आप context.startService() और context.bindService() मेथड्स से स्टार्ट कर सकते है।            जब service component क्रिएट होता है तो android syst...

Android Fragments

Android Fragments Introduction to android fragments in Hindi Android fragments life cycle in Hindi Types of android fragments in Hindi Creating android fragment in Hindi Introduction to Android Fragments एक fragment किसी activity के अंदर एक separate UI (user interface) होता है। Fragments की खुद की life cycle और input events होते है। आप एक fragment को कई activities में use कर सकते है। जब आपकी activity running state में हो तब भी आप fragments को add और remove कर सकते है। Fragments को आप sub activity भी कह सकते है।   Android fragments को android के Honeycomb version में introduce किया गया था।  Android fragments से पहले आप user को एक बार में एक activity ही show कर सकते थे इसलिए आप स्क्रीन को अलग अलग parts में divide नहीं कर सकते थे। Fragments के आने से application design और भी ज्यादा flexible हो गयी क्योंकि आप यूजर को एक साथ एक से ज्यादा interface शो कर सकते है और उन्हें separately manage भी कर सकते है। अब आपके पास activity तो एक ही रहेगी लेकिन आप इसमें ब...

Android Development Tools

Android Development Tools  Android SDK in Hindi  Android Debug bridge in Hindi Android gradle in Hindi Android studio in Hindi Android run time and delvik in Hindi  Android SDK  Android SDK (Software Development Kit) -  Android SDK  में वो सभी टूल्स होते है जिनकी आपको एंड्राइड एप्लीकेशन क्रिएट करने में, कम्पाइल करने में और एप्लीकेशन को पैकेज करने के लिए जरुरत पड़ेगी।  Android SDK में आपको सोर्स कोड के साथ सैंपल प्रोजेक्ट्स, डेवलपमेंट टूल्स, एक इमुलेटर और एप्लीकेशन डेवेलप करने के लिए रिक्वायर्ड लाइब्रेरीज मिलती है। सभी एप्लीकेशन java में डेवेलप की जाती है और डेलविक वर्चुअल मशीन पर रन की जाती है। Android debug bridge  ADB  (Android Debug Bridge  ) - ADB android SDK का एक कमांड लाइन  टूल है जिसकी मदद से आप अपनी एप्लीकेशन को वर्चुअल डिवाइस या किसी रियल डिवाइस पर रन करवा सकते है और डिबग कर सकते है। ये एक क्लाइंट सर्वर प्रोग्राम होता है जिसमे एक क्लाइंट होता है, एक सर्वर...