Android SearchView
项目需要实现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相关推荐
- 使用DataBinding的Android SearchView示例教程
Today we will look into Android SearchView widget and develop an application that filters a ListView ...
- android searchview光标,android – 在没有ActionBarSherlock的情况下更改SearchView中的光标颜色...
我试图在ICS中的SearchView小部件上更改闪烁光标的颜色.我尝试过以下方法: >添加< item name ="android:textCursorDrawable&qu ...
- Android SearchView介绍及搜索提示实现
本文主要介绍SearchView的使用.即时搜索提示功能的实现,以及一些设置. 1. layout文件 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <?xm ...
- Android SearchView和ListView的结合使用
2019独角兽企业重金招聘Python工程师标准>>> 今天学习了Android里面的搜索框SearchView的知识,刚开始也是在网上找找有没有大神写的小例子来参考.后来找了一篇跟 ...
- Android SearchView 搜索框
如果对这个效果感觉不错, 请往下看. 背景: 天气预报app, 本地数据库存储70个大中城市的基本信息, 根据用户输入的或通过搜索框选取的城市, 点击查询按钮后, 异步请求国家气象局数据, 得到返回的 ...
- xamarin.android searchview的一些用法
前言 searchview是安卓常用的搜索控件,网上有很多关于searchview都是java的,所以我参看xamaroin官网的一些demo总结一些方法. 导读 1.如何创建一个searchview ...
- Android SearchView基本用法
1.设置searchView会在Toolbar中显示,或者在普通布局中显示: (1).在普通布局当中: /*** 设置searchView:*/setSearchAttribute(searchVie ...
- android searchview属性,SearchView的用法(一)
前言 今天来讲讲searchView的使用,这里讲的searchView是引用android.support.v7.widget.SearchView 下的搜索. 本篇文章借鉴以下链接,在此表示感谢 ...
- android searchview属性,SearchView的全面解析
SearchView的全面解析 立即下载 金额: 2 元 支付方式: 友情提醒:源码购买后不支持退换货 立即支付 发布时间:2018-02-09 概述 searchView知识的全面讲解,知道这一篇就 ...
最新文章
- 动画库NineOldAndroids
- python如何安装torch_PyTorch安装与基本使用详解
- MASK-RCNN学习一:(数据集/原理介绍)
- centos7开放端口
- [SHOI2011]双倍回文 manacher
- 注解@Cacheable(value =“XXX“) 实现缓存 -- 失效原因
- 动态执行shell脚本
- 一个程序的自我修养「GitHub 热点速览 v.22.19」
- android手机免费无线投屏电脑方法教程步骤AirServer7
- 运营商5G商业模式研究
- Talib macd函数探究
- 几种常用的Web安全认证方式
- 【金猿人物展】深演智能黄晓南:在数字化营销的趋势下,智能和算法将重塑营销价值的评估标准...
- Cobot与Jenkins集成
- win10插拔U盘、鼠标、键盘等外设的一瞬间,屏幕会闪黑一下
- Windows“自动修复”无法修复
- 用 Python 压缩文件方法汇总
- SpringBoot结合RabbitMQ
- 电子商务安全欺诈预防市场现状研究分析-
- spring-security(二十五)鉴权