`
hufeng8824120
  • 浏览: 18956 次
社区版块
存档分类
最新评论

(转)Android搜索框架

 
阅读更多
http://www.cnblogs.com/halzhang/archive/2010/09/13/1825145.html
Android是google的产品,所以自然是少不了搜索。先看看Android一些应用中的搜索对话框。
图1 Android中的全局搜索

图2 联系人搜索

图3 音乐搜索

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

一、配置搜索描述文件

在res中的xml文件加创建sreachable.xml,内容如下:
   <searchable xmlns:android="http://schemas.android.com/apk/res/android"
           android:label="@string/search_label"
           android:hint="@string/search_hint"
            android:searchSettingsDescription="@string/settings_description">
  </searchable>

二、创建SearchableMusicActivity.java

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

三、配置AndroidManifest.xml
   <?xml version="1.0" encoding="utf-8"?>
   <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.halzhang.android.search" android:versionCode="1"
        android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
           <activity android:name=".SearchableMusicActivity"
                android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">
                <intent-filter>
                   <action android:name="android.intent.action.MAIN" />
                   <category android:name="android.intent.category.LAUNCHER" />
               </intent-filter>
               <intent-filter>
               <!-- 配置action -->
                   <action android:name="android.intent.action.SEARCH" />
               </intent-filter>
               <!-- 指定搜索的配置文件 -->
              <meta-data android:name="android.app.searchable"
                   android:resource="@xml/searchable" />
           </activity>
           <meta-data android:name="android.app.default_searchable"
              android:value=".SearchableMusicActivity" />

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



下面说说如何在搜索的时候弹出搜索历史提示
1.创建搜索建议提供者
Android已经为我们创建了一个默认的,我们只需要继承 SearchRecentSuggestionProvider 就稍做修改就可以了。
见代码:
   
import android.content.SearchRecentSuggestionsProvider;
     
    /**
     * 搜索提示
     * 
     * @author Hanguo
     * http://t.sina.com.cn/halzhang
     * @version 2011-1-5上午11:51:39
     */
   public class SearchSuggestionsProvider extends SearchRecentSuggestionsProvider {
       //记住这个哦
       public final static String AUTHORITY = "searchprovider";
    
       public final static int MODE = DATABASE_MODE_QUERIES;
    
       public SearchSuggestionsProvider() {
          setupSuggestions(AUTHORITY, MODE);
       }
   }

2.配置searchable.xml
  
 <?xml version="1.0" encoding="utf-8"?>
    <searchable xmlns:android="http://schemas.android.com/apk/res/android"
        android:label="@string/search_label" 
        android:hint="@string/search_hint"
        android:searchSettingsDescription="@string/search_settings_description"
        android:searchSuggestAuthority="searchprovider"
        android:searchSuggestIntentAction="android.intent.action.SEARCH"
        android:searchSuggestThreshold="1"
        android:includeInGlobalSearch="true"
       android:searchSuggestSelection=" ?"
      >
   </searchable>

参数说明:
android:searchSuggestAuthorith
此属性的值就是SearchSuggestAuthorith中的AUTHORITH了。
android:searchSuggestIntentAction
此属性定义了当我们选中搜索提示的内容时发生的目的动作。
android:searchSuggestThreshold
此属性定义了至少输入几个字符时才会弹出提示
android:includeInGlobalSearch
是否将内容加入android的全局搜索。true,加入。
android:searchSuggestSelection
定义搜索时参数的占位符

PS:配置参数不止这些,可以自己看看android的参考手册。

3.配置AndroidManifest.xml
  
 <provider android:name=".SearchSuggestionsProvider" android:authorities="searchprovider" />


注意authorities的属性值

分享到:
评论

相关推荐

    Android项目源码新闻阅读App框架AndroidFire

    AndroidFire,一款新闻阅读 App框架,基于 Material Design MVP RxJava Retrofit Glide,基本涵盖了当前 Android 端开发最常用的主流框架,基于此框架可以快速开发一个app。之前也介绍过很多类似的项目,在搜索...

    Android使用Netty框架的推送实现

    1、android端demo中的NettyClientBootstrap类中host、Constants.setClientId、LoginMsg需要自行修改为服务的ip地址、连接编号、登录信息 ...6、需要修改的地方,添加了TODO标识,全局搜索,并在适当的地方修改内容即可

    Android仿iphone的搜索框

    iphone上的搜索框,在选中搜索框的时候取消按钮会从右边划出,点即取消后取消按钮再消失,现在在android上实现

    Android的搜索框架实例详解

    所有的这些工作都由SearchManager类来为您处理(以下简称“搜索管理器”),它管理的Android搜索对话框的整个生命周期,并执行您的应用程序将发送的搜索请求,返回相应的搜索关键字。 当用户执行一个搜索,搜索管理...

    Android实现简单实用的搜索框

    本文实例为大家分享了Android实现搜索框展示的具体代码,供大家参考,具体内容如下 展示效果 代码区 SouActivity public class SouActivity extends AppCompatActivity implements TextWatcher{ @BindView(R.id....

    Node.js-AndroidBLE蓝牙开发框架

    Android BLE 蓝牙开发框架,使用回调方式处理,搜索、连接、notify、indicate、读、写等一系列蓝牙操作

    FastAndroid开源电商项目系列之Android客户端

    开发框架:FastAndroid,开发工具:Android Studio 本项目包含以下模块 商品模块:商品列表,商品分类,商品筛选及搜索,商品详情 购物车模块:购物车管理,在线支付,地址管理 用户模块:登录,注册,找回密码,订单管理...

    android手机影视客户端UI框架

    借鉴了几位大侠的小例子,然后在android下做的一个手机影视客户端小例子,包括搜索、AndroidImageSlider图片滑块菜单、横滚菜单、视频播放等。

    百度地图开发java源码-AndroidProject:android开发框架MVP真对公司内部需求封装,对其他项目无意义不用关注

    开发框架 项目结构采用MVP 架构 更新通知 2.0.2 增加工具类方法 修复保存图片找不到根目录 网络访问默认返回驼峰命名 更换IOSSwitchButton控件 修复表单布局ShFormLayout 内部控件在android studio 自定义属性 不...

    Android-app.rar

    Android应用源码开关WIFI热点搜索连接开源有注释 Android应用源码比较不错的新闻客户端 Android应用源码省市联动选择城市的天气预报源码 Android应用源码简单的NB微博项目源码 Android应用源码简洁的随手记事项目...

    解析Google Android SDK——智能手机开发范例手册.rar

    第8章 Android搜索框架 第9章 安全和权限 第10章 应用小部件 第11章 Android常用程序开发 第12章 Google位置服务 第13章 最佳实践 第14章 共享APK 第15章 拷贝和粘贴Copy and Paste 附录A Android中解析XML 附录B ...

    Android项目源码开源AnyRTC-RTMP全平台直播源码.zip

    8,实用主义,那些什么坑什么优化等概念请搜索相关文章 9,OpenH264软件编码,FFMpeg软件解码,FAAC/FAAD软件编解码,适配不同系统的硬件编解码统统包含 10,支持SRS、Nginx-RTMP等标准RTMP服务;同时支持各大CDN...

    Android Studio实现个人记账系统源码.zip

    Android Studio实现个人记账系统源码。基于安卓基础知识点开发的个人...7-使用Android自带数据库,熟练创建表,并进行增删改查 8-定义drawable文件,设定布局以及控件样式 9-使用MPAndroidChart第三方框架绘制柱状图

    仿京东商城客户端框架

    仿京东商城客户端框架(android)源码。 此UI框架可直接导入项目中使用。 包含:搜索、分类、购物车、个人中心等模块。 android商城开发的UI大框架。 请参考。

    新版Android开发教程.rar

    程序可以采用 JAVA 开发,但是因为它的虚拟机 (Virtual Machine) Dalvik ,是将 JAVA 的 bytecode 转成 自 己的格式,回避掉需要付给 SUN 有关 JAVA 的授权费用。 对手机制造者的影响 � Android 是款开源的移动计算...

    emailkit:适用于Android的EmailKit-这是一个功能强大,出色且简单的电子邮件框架:love_letter:

    EmailKit for Android是以JavaMail类库为基础进行封装的框架,它比JavaMail更简单易用,在使用它开发电子邮件客户端时,还能避免对电子邮件协议不熟悉的烦恼。目前EmailKit支持的电子邮件协议有SMTP和IMAP,它支持的...

    android开发资料大全

    【Android系统原理与开发要点详解】/底层 应用 框架 Android核心分析28篇,强烈推荐android初学者,android进阶者看看这个系列教程 Android应用开发者指南:性能优化 android开发教程合集(推荐新手看下这一季教程)...

    Android代码-一个有点ios感觉的可搜索的Spinner

    Android Searchable Spinner An android dropdown widget which allows to easily filter huge list of options Demo Usage Add the SearchableSpinner widget to your main layout file and provide an app:list ...

    Android高级编程--源代码

     由于Android构建在开源代码的框架之上,而且提供了强大的SDK库和开放的理念,所以它为广大的没有任何移动应用程序开发经验的新手开辟了一条开发完美的移动应用程序的康庄大道。而富有经验的移动开发人员现在也可以...

Global site tag (gtag.js) - Google Analytics