项目需要实现Search功能,根据网上的一些文章和Android的文档,自己实现了一个搜索联系人的。测试手机为三星的

无图无真相

代码如下:

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity" ><SearchViewandroid:id="@+id/search"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#F0F0F0F0" /><ListViewandroid:id="@android:id/list"android:layout_width="match_parent"android:layout_height="0dip"android:layout_weight="1" /></LinearLayout>

searchable.xml,这个文件至关重要,可以配置搜索模式,比如voicesearch,用于链接到设备的全局搜索。如果不希望加到全局搜索,可以不配置这个文件。

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"android:label="@string/contactsList"android:hint="@string/searchHint"android:searchMode="queryRewriteFromText" />

Androidmanifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.demo.contactsearch"android:versionCode="1"android:versionName="1.0" ><uses-permission android:name="android.permission.READ_CONTACTS"/><uses-sdkandroid:minSdkVersion="17"android:targetSdkVersion="18" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name="com.demo.contactsearch.MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter><intent-filter><action android:name="android.intent.action.SEARCH" /></intent-filter><meta-dataandroid:name="android.app.searchable"android:resource="@xml/searchable" /></activity></application></manifest>

MainActivity.java

package com.demo.contactsearch;import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.RawContacts;
import android.view.Menu;
import android.view.inputmethod.InputMethodManager;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.SearchView.OnQueryTextListener;
import android.widget.SimpleCursorAdapter;public class MainActivity extends Activity {private SearchView mSearchView;private ListView mListView;private SimpleCursorAdapter mAdapter;private Cursor mCursor;static final String[] PROJECTION = new String[] {ContactsContract.RawContacts._ID, ContactsContract.RawContacts.DISPLAY_NAME_PRIMARY };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mCursor = getContentResolver().query(RawContacts.CONTENT_URI, PROJECTION, null, null, null);mAdapter = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1, mCursor,new String[] { RawContacts.DISPLAY_NAME_PRIMARY }, new int[] { android.R.id.text1 },0);mListView = (ListView) findViewById(android.R.id.list);mListView.setAdapter(mAdapter);mSearchView = (SearchView) findViewById(R.id.search);mSearchView.setIconifiedByDefault(true);mSearchView.onActionViewExpanded();mSearchView.setFocusable(false);mSearchView.clearFocus();
//      mSearchView.setIconifiedByDefault(true);mSearchView.setOnQueryTextListener(new OnQueryTextListener() {@Overridepublic boolean onQueryTextChange(String queryText) {String selection = RawContacts.DISPLAY_NAME_PRIMARY + " LIKE '%"+ queryText + "%' " + " OR "+ RawContacts.SORT_KEY_PRIMARY + " LIKE '%" + queryText+ "%' ";
//              String[] selectionArg = { queryText };mCursor = getContentResolver().query(RawContacts.CONTENT_URI, PROJECTION, selection, null, null);mAdapter.swapCursor(mCursor);return true;}@Overridepublic boolean onQueryTextSubmit(String queryText) {if (mSearchView != null) {InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);if (imm != null) {imm.hideSoftInputFromWindow(mSearchView.getWindowToken(), 0);}mSearchView.clearFocus();}return true;}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

Android SearchView相关推荐

  1. 使用DataBinding的Android SearchView示例教程

    Today we will look into Android SearchView widget and develop an application that filters a ListView ...

  2. android searchview光标,android – 在没有ActionBarSherlock的情况下更改SearchView中的光标颜色...

    我试图在ICS中的SearchView小部件上更改闪烁光标的颜色.我尝试过以下方法: >添加< item name ="android:textCursorDrawable&qu ...

  3. Android SearchView介绍及搜索提示实现

    本文主要介绍SearchView的使用.即时搜索提示功能的实现,以及一些设置. 1. layout文件 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <?xm ...

  4. Android SearchView和ListView的结合使用

    2019独角兽企业重金招聘Python工程师标准>>> 今天学习了Android里面的搜索框SearchView的知识,刚开始也是在网上找找有没有大神写的小例子来参考.后来找了一篇跟 ...

  5. Android SearchView 搜索框

    如果对这个效果感觉不错, 请往下看. 背景: 天气预报app, 本地数据库存储70个大中城市的基本信息, 根据用户输入的或通过搜索框选取的城市, 点击查询按钮后, 异步请求国家气象局数据, 得到返回的 ...

  6. xamarin.android searchview的一些用法

    前言 searchview是安卓常用的搜索控件,网上有很多关于searchview都是java的,所以我参看xamaroin官网的一些demo总结一些方法. 导读 1.如何创建一个searchview ...

  7. Android SearchView基本用法

    1.设置searchView会在Toolbar中显示,或者在普通布局中显示: (1).在普通布局当中: /*** 设置searchView:*/setSearchAttribute(searchVie ...

  8. android searchview属性,SearchView的用法(一)

    前言 今天来讲讲searchView的使用,这里讲的searchView是引用android.support.v7.widget.SearchView 下的搜索. 本篇文章借鉴以下链接,在此表示感谢 ...

  9. android searchview属性,SearchView的全面解析

    SearchView的全面解析 立即下载 金额: 2 元 支付方式: 友情提醒:源码购买后不支持退换货 立即支付 发布时间:2018-02-09 概述 searchView知识的全面讲解,知道这一篇就 ...

最新文章

  1. 动画库NineOldAndroids
  2. python如何安装torch_PyTorch安装与基本使用详解
  3. MASK-RCNN学习一:(数据集/原理介绍)
  4. centos7开放端口
  5. [SHOI2011]双倍回文 manacher
  6. 注解@Cacheable(value =“XXX“) 实现缓存 -- 失效原因
  7. 动态执行shell脚本
  8. 一个程序的自我修养「GitHub 热点速览 v.22.19」
  9. android手机免费无线投屏电脑方法教程步骤AirServer7
  10. 运营商5G商业模式研究
  11. Talib macd函数探究
  12. 几种常用的Web安全认证方式
  13. 【金猿人物展】深演智能黄晓南:在数字化营销的趋势下,智能和算法将重塑营销价值的评估标准...
  14. Cobot与Jenkins集成
  15. win10插拔U盘、鼠标、键盘等外设的一瞬间,屏幕会闪黑一下
  16. Windows“自动修复”无法修复
  17. 用 Python 压缩文件方法汇总
  18. SpringBoot结合RabbitMQ
  19. 电子商务安全欺诈预防市场现状研究分析-
  20. spring-security(二十五)鉴权

热门文章

  1. Xv6学习之kinit1
  2. GCC背后的故事OpenCV相逢何必曾相识
  3. C++字符串赋值、拼接、查找、替换、存取、插入删除和子串
  4. csp-202203
  5. vcs+verdi简单的仿真
  6. git 本地回退到某个版本
  7. 1.8 Illustrator标尺的使用 [Illustrator CC教程]
  8. c++之头文件基本输出,输入,名字空间,引用,内联函数,函数重载,缺省参数
  9. jQuery选择器之类选择器
  10. 详谈什么是接口测试?