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 शो हो जाता है। जैसा की आप ऊपर दी हुई 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 होता है।      

Example 

<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 करना होगा। इसका उदाहरण निचे दिया जा रहा है-

Example

<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 के नाम से स्ट्रिंग variable create करके उसमे store कर लेंगे। Intent से query extract करने के लिए आप getStringExtra()मेथड यूज़ करेंगे।

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

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

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

Comments

Add2

Popular posts from this blog

Android menus

Android broadcast receivers