SearchView顾名思义就是一个搜索视图,和之前讲解的自动匹配的输入框类似。只不过他有自己特有的监听器,并且可以实时得到用户输入的结果。对于SearchView这个控件,我强烈建议将其放在ActionBar上面,突出搜索这个功能。但这里可能会涉及到Actionbar的知识,所以这里先给大家展示一下这个控件是干什么用的。

布局文件

<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" > <requestFocus /> <SearchView
android:id="@+id/searchView_id"
android:layout_width="match_parent"
android:layout_height="wrap_content" /> <ListView
android:id="@+id/listView_id"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" >
</ListView> </LinearLayout>

MainActivity.java

package com.kale.searchview;

import android.app.Activity;
import android.os.Bundle;
import android.widget.SearchView;
import android.widget.SearchView.OnQueryTextListener;
import android.text.TextUtils;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast; public class MainActivity extends Activity implements OnQueryTextListener{ private SearchView sView;
private ListView lView;
//自动完成的列表
private final String[] mStrings = {"aaaa","bbbb","cccc"}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); viewInit();
lView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,mStrings));
lView.setTextFilterEnabled(true); //设置该searchView默认是否自动缩小为图标
sView.setIconified(false);
//为该设searchView组件设置事件监听器
sView.setOnQueryTextListener(this);
//设置该组件显示搜索按钮
sView.setSubmitButtonEnabled(true);
//设置该组件默认显示的提示文本
sView.setQueryHint("查找");
} // 用户输入字符时激发的方法
@Override
public boolean onQueryTextChange(String newText) {
// TODO 自动生成的方法存根
if(TextUtils.isEmpty(newText)) {
//清除listview的过滤
lView.clearTextFilter();
}
else {
//用用户输入的内容对listview的列表项进行过滤
lView.setFilterText(newText);
}
return true;
} //用户单击搜索按钮时激发的方法
@Override
public boolean onQueryTextSubmit(String qurery) {
//这里仅仅是模拟,实际中应该在该方法中进行查询,然后将结果得到
Toast.makeText(MainActivity.this, "你选择的是:"+qurery, 0).show();
return false;
} private void viewInit() {
sView = (SearchView)findViewById(R.id.searchView_id);
lView = (ListView)findViewById(R.id.listView_id);
} }

SearchView的最简单的使用方式的更多相关文章

  1. JavaScript高级 面向对象(5)--最简单的继承方式,混入mix

    说明(2017.3.30): 1. 最简单的继承方式,混入mix <!DOCTYPE html> <html lang="en"> <head> ...

  2. C# 简单的进程间通信方式

    只想实现一个简单的进程建通信,有什么快速实现方式? 1 进程单例需求 / Windows 消息与 IMessageFilter 如果需求是实现一个进程单例,在启动第二个进程时,期望能自动唤起第一个进程 ...

  3. 用简单直白的方式讲解A星寻路算法原理

    很多游戏特别是rts,rpg类游戏,都需要用到寻路.寻路算法有深度优先搜索(DFS),广度优先搜索(BFS),A星算法等,而A星算法是一种具备启发性策略的算法,效率是几种算法中最高的,因此也成为游戏中 ...

  4. APP中一种在Java层实现的简单守护进程方式

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52779986 守护进程是一个黑色 ...

  5. php单点登陆简单实现 (iframe方式)

    有四个网站分别为: www.a.com www.b.com www.c.com www.sso.com 需求是如果我们在sso登陆后,其他网站也会显示登陆中,不需要重复登陆,退出时,其他网站也会失效. ...

  6. android SearchView和ListView简单使用

    其实我写代码最担心遇到关于适配器的使用,在我的感觉中适配器是个难度很大的知识点,但是不能因为难而不去学习啊,毕竟现在时间很充裕,可以慢慢学,所以,不会也要写,真所谓,迎难而上啊.  下面是Search ...

  7. EasyNVR无插件直播服务器软件接口调用返回“Unauthorized”最简单的处理方式

    背景需求 对于EasyNVR的受众群体十分的广泛,不仅仅有将EasyNVR作为视频直播平台直接使用的,更多的是使用EasyNVR的对应功能集成到自身系统.对于前者,只需要将软件的使用功能搞清楚即可,对 ...

  8. [PHP] 内部接口简单加密验证方式

    1. 当有内部系统之间进行调用的时候,也需要简单的进行一下调用方的验证,一种简单的内部接口加密验证方式.此加密方式需要三个参数,分别是api地址,pin码,entry标识,其中pin和entry是接口 ...

  9. vue几种简单的传值方式

    除了一下的几种方式外,可以参考 https://www.cnblogs.com/hpx2020/p/10936279.html 组件传值的方法: 一.父组件向子组件传递数据(props) 第1:父组件 ...

随机推荐

  1. 使用div模拟出frameset效果

    <!doctype html> <html xmlns="http://www.w3.org/1999/xhtml" > <head> < ...

  2. AC自动机学习笔记-1(怎么造一台AC自动机?)

    月更博主又来送温暖啦QwQ 今天我们学习的算法是AC自动机.AC自动机是解决字符串多模匹配问题的利器,而且代码也十分好打=w= 在这一篇博客里,我将讲解AC自动机是什么,以及怎么构建一个最朴素的AC自 ...

  3. MySQL 索引原理概述及慢查询优化实战

    MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位 ...

  4. [java] DOS编译 .java 文件得到 .class 文件 并执行 以及使用外部 .jar包 时的命令

    当写一个java文件后,在DOS中进行编译与执行时,如果没有引入外来的包,那情况很简单 例如: public class hello_world { public static void main(S ...

  5. 005.Zabbix-Agent客户端安装

    一 安装Zabbix-Agent [root@imxhy ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-rel ...

  6. sublime安装package control 的方法

    1.安装sublime3后,点击菜单 view>show console,复制以下代码按回车即可,安装时稍微有些卡,需要耐心等待. import urllib.request,os; pf = ...

  7. clob字段超过4000转String类型

    上次提到listagg()和wm_concat()方法合并过的字段类型为clob,要是字段长度超过4000,直接使用to_char()方法转会报错. 解决方法可以在java代码中使用流的方式转化成字符 ...

  8. forof循环

    一.语法 1.遍历数组 let myArr=[1,2,3,4,5]; for (let ele of myArr) { console.log(ele); } let myArr=[1,2,3,4,5 ...

  9. 解决 MyEclipse build workspace 慢,validation javascript 更慢的问题

    自从升级了MyEclipse到7.0,项目Build的时候总是很慢,显示Validating 那些js,html文件.不管我怎么调整 Windows > Preference > MyEc ...

  10. 基于ngx_lua的动态服务路由方案

    基于ngx_lua的动态服务路由方案 http://geek.csdn.net/news/detail/131497