欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android SearchView搜索框组件的使用方法

程序员文章站 2024-03-03 17:18:46
searchview是搜索框组件,它可以让用户在文本框里输入文字,通过监听器取得用户的输入,当用户点击搜索时,监听器执行实际的搜索。 本文就为大家分享了searchvie...

searchview是搜索框组件,它可以让用户在文本框里输入文字,通过监听器取得用户的输入,当用户点击搜索时,监听器执行实际的搜索。

本文就为大家分享了searchview搜索框组件的使用方法,供大家参考,具体内容如下

效果:

Android SearchView搜索框组件的使用方法

代码searchactivity.java

package com.jialianjia.bzw.activity;

import android.os.bundle;
import android.widget.arrayadapter;
import android.annotation.suppresslint;
import android.widget.listview;
import android.widget.searchview;
import com.jialianjia.bzw.baseactivity;
import com.jialianjia.bzw.r;
import com.lidroid.xutils.viewutils;
import java.util.arraylist;

/**
 * 搜索
 * created by gxs on 2016/5/5.
 */

public class searchactivity extends baseactivity implements searchview.onquerytextlistener{

 private searchview searchview;
 private listview listview;
 private arrayadapter<string> arrayadapter;
 private arraylist<string> arraylist = new arraylist<string>();
 private object[] names;

 @override
 protected void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 setcontentview(r.layout.activity_search);
 names = loaddata();
 viewutils.inject(this);
 searchview = (searchview) findviewbyid(r.id.searchview);
 listview = (listview) findviewbyid(r.id.listview);
 listview.setadapter(new arrayadapter<object>(getapplicationcontext(),
  android.r.layout.simple_expandable_list_item_1, names));
 searchview.setonquerytextlistener(this);
 searchview.setsubmitbuttonenabled(false);
 }
 @override
 public boolean onquerytextsubmit(string query) {
 return false;
 }

 @override
 public boolean onquerytextchange(string newtext) {
 object[] obj = searchitem(newtext);
 updatelayout(obj);
 return false;
 }

 public object[] searchitem(string name) {
 arraylist<string> msearchlist = new arraylist<string>();
 for (int i = 0; i < arraylist.size(); i++) {
  int index = arraylist.get(i).indexof(name);
  // 存在匹配的数据
  if (index != -1) {
  msearchlist.add(arraylist.get(i));
  }
 }
 return msearchlist.toarray();
 }

 // 更新数据
 public void updatelayout(object[] obj) {
 listview.setadapter(new arrayadapter<object>(getapplicationcontext(),
  android.r.layout.simple_expandable_list_item_1, obj));
 }

 // 测试数据
 public object[] loaddata() {
 arraylist.add("aaa");
 arraylist.add("aab");
 arraylist.add("aac");
 arraylist.add("aad");
 arraylist.add("abc");
 arraylist.add("abcd");
 arraylist.add("cdf");
 arraylist.add("eda");
 arraylist.add("sdfa");
 arraylist.add("ddda");
 arraylist.add("sssa");
 return arraylist.toarray();
 }
}

布局activity_search.xml

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical" >

 <android.support.v7.widget.toolbar
 android:id="@+id/toolbar"
 android:layout_width="match_parent"
 android:layout_height="50dp"
 android:background="?attr/colorprimary"
 android:theme="@style/apptheme.appbaroverlay"
 android:fitssystemwindows="true" />

 <linearlayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal"
 android:layout_margintop="5dp"
 android:layout_marginleft="5dp"
 android:layout_marginright="5dp">

 <searchview
 android:id="@+id/searchview"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:iconifiedbydefault="false"
 android:background="@drawable/shape_search"
 android:queryhint="请输入您要查找的内容"/>

 <button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="返回"/>

 </linearlayout>

 <tablerow
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_gravity="right"></tablerow>

 <listview
 android:id="@+id/listview"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="#969696"/>

</linearlayout>

大家还可以参考:android搜索框组件searchview的基本使用方法 进行深入学习。

以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持。