Android SearchView搜索框组件的使用方法
程序员文章站
2024-03-03 17:18:46
searchview是搜索框组件,它可以让用户在文本框里输入文字,通过监听器取得用户的输入,当用户点击搜索时,监听器执行实际的搜索。
本文就为大家分享了searchvie...
searchview是搜索框组件,它可以让用户在文本框里输入文字,通过监听器取得用户的输入,当用户点击搜索时,监听器执行实际的搜索。
本文就为大家分享了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的基本使用方法 进行深入学习。
以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持。