Android是google的产品,所以自然是少不了搜索。先看看Android一些应用中的搜索对话框。

图1 Android中的全局搜索

图2 联系人搜索

图3 音乐搜索

以上都是通过按下实体键盘上的搜索按钮弹出的一个搜索对话框,当然搜索关键词提示是少不了的。如何实现呢?慢慢来!呵呵。

一、配置搜索描述文件

在res中的xml文件加创建sreachable.xml,内容如下:

  1. <searchable xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:label="@string/search_label"
  3. android:hint="@string/search_hint"
  4. android:searchSettingsDescription="@string/settings_description">
  5. </searchable>
复制代码

二、创建SearchableMusicActivity.java

至少需要实现onCreate方法显示出来吧。

三、配置AndroidManifest.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.halzhang.android.search" android:versionCode="1"
  4. android:versionName="1.0">
  5. <application android:icon="@drawable/icon" android:label="@string/app_name">
  6. <activity android:name=".SearchableMusicActivity"
  7. android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">
  8. <intent-filter>
  9. <action android:name="android.intent.action.MAIN" />
  10. <category android:name="android.intent.category.LAUNCHER" />
  11. </intent-filter>
  12. <intent-filter>
  13. <!-- 配置action -->
  14. <action android:name="android.intent.action.SEARCH" />
  15. </intent-filter>
  16. <!-- 指定搜索的配置文件 -->
  17. <meta-data android:name="android.app.searchable"
  18. android:resource="@xml/searchable" />
  19. </activity>
  20. <meta-data android:name="android.app.default_searchable"
  21. android:value=".SearchableMusicActivity" />
复制代码

通过以上三步就能实现搜索对话框了。

接下来会讲到搜索关键字提示,先到这里。

-----------------EOF-------------------

1.创建搜索建议提供者 Android已经为我们创建了一个默认的,我们只需要继承 SearchRecentSuggestionProvider 就稍做修改就可以了。 见代码:
  1. import android.content.SearchRecentSuggestionsProvider;

  2. /**
  3. * 搜索提示
  4. *
  5. * @author Hanguo
  6. * http://t.sina.com.cn/halzhang
  7. * @version 2011-1-5上午11:51:39
  8. */
  9. public class SearchSuggestionsProvider extends SearchRecentSuggestionsProvider {
  10. //记住这个哦
  11. public final static String AUTHORITY = "searchprovider";

  12. public final static int MODE = DATABASE_MODE_QUERIES;

  13. public SearchSuggestionsProvider() {
  14. setupSuggestions(AUTHORITY, MODE);
  15. }
  16. }
复制代码


2.配置searchable.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <searchable xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:label="@string/search_label"
  4. android:hint="@string/search_hint"
  5. android:searchSettingsDescription="@string/search_settings_description"
  6. android:searchSuggestAuthority="searchprovider"
  7. android:searchSuggestIntentAction="android.intent.action.SEARCH"
  8. android:searchSuggestThreshold="1"
  9. android:includeInGlobalSearch="true"
  10. android:searchSuggestSelection=" ?"
  11. >
  12. </searchable>
复制代码 参数说明:
android:searchSuggestAuthorith
此属性的值就是SearchSuggestAuthorith中的AUTHORITH了。
android:searchSuggestIntentAction
此属性定义了当我们选中搜索提示的内容时发生的目的动作。
android:searchSuggestThreshold
此属性定义了至少输入几个字符时才会弹出提示
android:includeInGlobalSearch
是否将内容加入android的全局搜索。true,加入。
android:searchSuggestSelection
定义搜索时参数的占位符

更多相关文章

  1. Android默认闹钟-铃声-通知提示音修改
  2. android sdk 编译--如何将源代码加入android.jar,以及make原理 2
  3. android在代码中为new出的控件设置ID及setId()异常
  4. Android——打包篇:Android(安卓)Studio将代码打包成jar包
  5. 如何在Android下使用JNI
  6. Android(安卓)MVP设计模式实例详解
  7. Hack4-自定义PreferenceActivity界面
  8. Android(安卓)命名规范 (提高代码可以读性)
  9. Android:你不知道的 WebView 使用漏洞

随机推荐

  1. OpenCV 的 RGB 顺序和 Android 载入的 RG
  2. Android屏幕适配-终结者
  3. Android使用回调接口
  4. 2020年20种最佳Android应用程序模板
  5. 反编译Android部署程序
  6. android UI开源项目
  7. Genymotion - 速度飞一般的Android虚拟机
  8. Android分类列表之RecyclerView-ItemDeco
  9. 从零学Android(十二)、Android中的图形和动
  10. Android下使用OpenCV