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 Activity

Android Activity Activity life cycle in Hindi Starting an  android activity in Hindi Creating a new activity in Hindi Destroying an  android activity in Hindi Introduction to Activity आप की application में एक से ज्यादा activity हो सकती है। जब आप इन activities के through navigate करते है, यानि एक activity से दूसरी activity में जाते है तो activity अपनी life cycle की different stages में जाती है। उदाहरण के लिए जब आपकी activity start होती है तो ये foreground में होती है और user का पूरा focus इस पर होता है। इस process के दौरान  android  system कुछ life cycle methods को call करता है। यदि user कोई दूसरी activity start करता है तो android system उस activity के life cycle methods को call करता है और आपकी पहले वाली activity background में चली जाती है। life cycle methods में आप decide कर सकते है की जब user जाता है या वापस आता है तो आपकी activity कैसे behave करेगी।  उदाहरण के लिए यदि आप एक वीडियो player बना रहे है तो जब user किसी दूसरी activity पर जाये तो...

Android Spinners

Android Spinners  Introduction to  android spinners in Hindi Defining  android spinners in Hindi Creating spinner items array in Hindi Responding to spinner selections in Hindi    Introduction to Android Spinners Android spinners आपकी एप्लीकेशन में एक drop down menu होती है। इस drop down menu में बहुत से items होते है जिन्हे user choices कहते है। जब user spinner पर क्लिक करता है तो ये items शो होते है। यूज़र अपने लिए appropriate choice choose करता है। By default spinner में सबसे top वाला element शो होता है। Spinners को XML layout file में क्रिएट किया जाता है। और items की लिस्ट string resource file में क्रिएट की जाती है। जिसमे आप एक string array क्रिएट करते है।  Spinner और items को जोड़ने के लिए एक array adapter क्रिएट किया जाता है। इसके बाद selection events को respond करने के लिए OnItemSelectedListener interface को  इम्प्लीमेंट किया जाता है।  Defining Android Spinners Android spinners को आप XML l...